Guten Tag zusammen,
ich habe mir eine Website gebaut. Diese läuft zwar aktuell und macht was sie soll, ist aber durch viele Nachbesserungen und zusätzlichen Features von der Programmierung her nicht mehr strukturiert.
Ich hab mir damals an einem aktuell eher veralteten MVC-Skeleton die Basics beigebracht und die Webseite darauf aufgebaut.
Aufbau:
controllers (Pro Seite sozusagen die Intelligenz der Seite, extended eine Controller.class aus dem library Verzeichnis die als Übergabepunkt dient)
librarys (hauptsächlich für das Routing und die View-Erstellung)
models(hier liegen die Datenbank-Querys pro Seite die ich dann im Controller verwende)
views(Hier liegen die index.html Seiten für die Darstellung der Seiten und die Formulare)
webroot(hier liegen die css, js dateien so wie die index.php usw.)
Nachdem ich festgestellt habe, das ich meine Querys gerne allgemeiner schreiben möchte, wollte ich das ganze umschreiben.
(wie zum Beispiel, "function search (needle)" die ich in jeder Seite nutzen möchte, um gegen doppelte Funktionen vorzugehen)
Ich bin zum Schluss gekommen das vielleicht ein aktuelles Framework hilfreicher und schneller sein könnte, vor allem durch die externen librarys die man je nach Projekt hinzufügen kann.
Also hab ich mir das Slim-Framework rausgesucht, soweit so gut alles in einfacher kürzer und besser wieder nachgebaut.
Nun zu meinem Problem, nachdem mir die Tutorials aufgrund der gefühlt 50 Millionen verschiedenen Ansätze nicht weiterbringen, hege ich die Hoffnung, dass ich hier jemanden finde der mir weiterhelfen kann.
Aufbau:
app
\src
\Action
\HomeAction - hier liegt zusagen mein Controller, indem ich die View rendere und die Funktion der Seite erstelle. Funktionen aufrufen, Parameter vom Post weiterverarbeite usw.
\Model
\User.php - hier sollte laut meinem Verständnis die Datenbank "geladen" werden. Ich dachte mir nachdem man mir bei Slim Eloquent empfiehlt nutze ich dieses.
\templates
\.twig - hier liegen meine twig templates, also meine views aufgeteilt in ein base.twig und je nach Seite eine extension des base twigs
dependencies.php - Container die ich aus Gründen meines geringen Verständnisses bisher nur als Schnittstelle von externen Librarys verwende
middleware.php - hab ich noch nicht ganz Verstanden
routes.php - hier leg ich das Routing der Seite fest
settings.php - Allgemeine Einstellungen der Website
log
public - so ziemlich das gleiche wie webroot
Das ganze funktioniert für mich soweit das ich Sachen aus der Datenbank holen und darstellen kann. Nachdem mir ein "Hallo ich versteh nicht wie ich das machen muss um Sachen in meine Datenbank zu kriegen" nichts bringen wird, habe ich eine andere Frage.
Sollte ich Eloquent komplett rausnehmen, wenn ja welche Alternative gibt es und wie muss Sie integriert werden. Was wäre ein gute Beispielaufbau.
Mir würde es auch einfach helfen, wenn mir jemand kurz erklärt wo sich Eloquent genau einordnet in meine Struktur.
So nutze ich aktuell das Model um Dinge aus der Datenbank zu ziehen und im twig darzustellen.
Ich verstehe nicht wie ich zum Beispiel bei einem Übergebenen-Postwert in die Datenbank schreiben soll.
Laut dem Internet, soll es über folgendes funktionieren:
Benötige ich dafür dann noch einen extra Controller oder wo muss ich das in meiner aktuellen Programmierung einbauen?
Sorry für den langen Post.
Mit freundlichen Grüßen
Simon
ich habe mir eine Website gebaut. Diese läuft zwar aktuell und macht was sie soll, ist aber durch viele Nachbesserungen und zusätzlichen Features von der Programmierung her nicht mehr strukturiert.
Ich hab mir damals an einem aktuell eher veralteten MVC-Skeleton die Basics beigebracht und die Webseite darauf aufgebaut.
Aufbau:
controllers (Pro Seite sozusagen die Intelligenz der Seite, extended eine Controller.class aus dem library Verzeichnis die als Übergabepunkt dient)
librarys (hauptsächlich für das Routing und die View-Erstellung)
models(hier liegen die Datenbank-Querys pro Seite die ich dann im Controller verwende)
views(Hier liegen die index.html Seiten für die Darstellung der Seiten und die Formulare)
webroot(hier liegen die css, js dateien so wie die index.php usw.)
Nachdem ich festgestellt habe, das ich meine Querys gerne allgemeiner schreiben möchte, wollte ich das ganze umschreiben.
(wie zum Beispiel, "function search (needle)" die ich in jeder Seite nutzen möchte, um gegen doppelte Funktionen vorzugehen)
Ich bin zum Schluss gekommen das vielleicht ein aktuelles Framework hilfreicher und schneller sein könnte, vor allem durch die externen librarys die man je nach Projekt hinzufügen kann.
Also hab ich mir das Slim-Framework rausgesucht, soweit so gut alles in einfacher kürzer und besser wieder nachgebaut.
Nun zu meinem Problem, nachdem mir die Tutorials aufgrund der gefühlt 50 Millionen verschiedenen Ansätze nicht weiterbringen, hege ich die Hoffnung, dass ich hier jemanden finde der mir weiterhelfen kann.
Aufbau:
app
\src
\Action
\HomeAction - hier liegt zusagen mein Controller, indem ich die View rendere und die Funktion der Seite erstelle. Funktionen aufrufen, Parameter vom Post weiterverarbeite usw.
\Model
\User.php - hier sollte laut meinem Verständnis die Datenbank "geladen" werden. Ich dachte mir nachdem man mir bei Slim Eloquent empfiehlt nutze ich dieses.
\templates
\.twig - hier liegen meine twig templates, also meine views aufgeteilt in ein base.twig und je nach Seite eine extension des base twigs
dependencies.php - Container die ich aus Gründen meines geringen Verständnisses bisher nur als Schnittstelle von externen Librarys verwende
middleware.php - hab ich noch nicht ganz Verstanden
routes.php - hier leg ich das Routing der Seite fest
settings.php - Allgemeine Einstellungen der Website
log
public - so ziemlich das gleiche wie webroot
Das ganze funktioniert für mich soweit das ich Sachen aus der Datenbank holen und darstellen kann. Nachdem mir ein "Hallo ich versteh nicht wie ich das machen muss um Sachen in meine Datenbank zu kriegen" nichts bringen wird, habe ich eine andere Frage.
Sollte ich Eloquent komplett rausnehmen, wenn ja welche Alternative gibt es und wie muss Sie integriert werden. Was wäre ein gute Beispielaufbau.
Mir würde es auch einfach helfen, wenn mir jemand kurz erklärt wo sich Eloquent genau einordnet in meine Struktur.
PHP-Code:
<?php
namespace App\Model;
use Illuminate\Database\Eloquent\Model as Eloquent;
class User extends Eloquent {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'co_users';
protected $primaryKey = 'co_id';
}
PHP-Code:
<?php
namespace App\Action;
use Slim\Views\Twig;
use App\Model\User;
use Psr\Log\LoggerInterface;
use Slim\Http\Request;
use Slim\Http\Response;
final class HomeAction
{
private $view;
private $logger;
public function __construct(Twig $view, LoggerInterface $logger)
{
$this->view = $view;
$this->logger = $logger;
}
public function __invoke(Request $request, Response $response, $args)
{
$this->logger->info("Homepage action dispatched");
$user = User::all()->toArray();
foreach (array_chunk($user, 3, true) as $array) {
$value[] = $array;
}
$users = $value;
$this->view->render($response, '/Home/home.twig', ['users'=> $users]);
return $response;
}
}
Ich verstehe nicht wie ich zum Beispiel bei einem Übergebenen-Postwert in die Datenbank schreiben soll.
PHP-Code:
<?php
namespace App\Action;
use App\Model\Order;
use Slim\Views\Twig;
use App\Model\Sort;
use Psr\Log\LoggerInterface;
use Slim\Http\Request;
use Slim\Http\Response;
final class OrderAction
{
private $view;
private $logger;
public function __construct(Twig $view, LoggerInterface $logger)
{
$this->view = $view;
$this->logger = $logger;
}
public function __invoke(Request $request, Response $response, $args)
{
$this->logger->info("Homepage order dispatched");
$sort = Sort::all()->toArray();
$post_id = $request->getParam('id');
$post_sort = $request->getParam('order');
foreach (array_chunk($sort, 4, true) as $array) {
$value[] = $array;
}
$sorts = $value;
if($post_sort){
Hier ist der Punkt an dem ich nicht weiterkomme.
}
$this->view->render($response, '/Orders/orders.twig', ['sorts'=> $sorts]);
return $response;
}
}
PHP-Code:
public function store(Request $request) { // Validate the request... $order= new Order; $order->sort_id= $post_sort->sort_id; $order->save(); } }
Sorry für den langen Post.
Mit freundlichen Grüßen
Simon
Kommentar