Frage

Ich suche nach Ratschlägen, Tutorials und Links zum Einrichten einer mittelgroßen Webanwendung mit Kohana 3.Ich habe in der Vergangenheit MVC-Muster implementiert, aber nie mit einem „formalisierten“ MVC-Framework gearbeitet, daher bin ich immer noch dabei, mich mit der Terminologie vertraut zu machen – indem ich mit einfachen Beispielen herumspiele, Ansichten und Vorlagen erstelle und so weiter.

Ich komme ziemlich gut voran, möchte aber ein reales Webprojekt (eins meiner eigenen, das ich schon seit einiger Zeit plane) als Lernobjekt einrichten.

Ich lerne am besten anhand von Beispielen, aber die beispielbasierte Dokumentation für Kohana 3 ist derzeit etwas spärlich – das sagen sie selbst auf der Website.Ich mache mir zwar keine Sorgen, das Framework im Laufe der Zeit zu erlernen, möchte aber sicherstellen, dass die Codebasis von Anfang an gesund strukturiert ist – d. h.Controller sind gut aufgeteilt, gut benannt und entsprechen den Standards, und am wichtigsten ist, dass die Geschäftslogik in Modelle entsprechender Größe unterteilt ist.

Im Kern könnte man meine Anwendung als Branchenverzeichnis mit vielfältigen Such- und Listungsfunktionen und einem Login-Bereich für jeden Eintragseigentümer beschreiben.Für das eigentliche administrative Datenbank-Backend ist bereits gesorgt.

Angenommen, ich habe die gesamte API bereits ausgearbeitet und eingerichtet – alle Unternehmen auflisten, Unternehmen bearbeiten, Unternehmen nach Straßennamen auflisten, als Unternehmen angemeldetes Angebot erstellen usw., und ich suche nur nach einer Möglichkeit, die Funktionalität einzubauen ein MVC-Muster und in eine Kohana-Anwendungsstruktur, die leicht erweitert werden kann.

  • Kennen Sie reale Beispiele für „datenbankintensive“ Anwendungen wie Verzeichnisse, Online-Communities ...mit einem auf Kohana 3 basierenden Anmeldebereich, vorzugsweise Open Source, damit ich einen Blick darauf werfen kann, wie sie das machen?

  • Gibt es Konventionen oder Best Practices für die Strukturierung eines erweiterbaren Anmeldebereichs für Endbenutzer in einem Kohana-Projekt, der nicht nur eine Unternehmensverzeichnisseite, sondern auch weitere Produkte auf separaten Seiten verwalten kann?

  • Kennen Sie gute Ressourcen zum Erstellen komplexer Anwendungen mit Kohana?

  • Haben Sie etwas Ähnliches gebaut und könnten mir Empfehlungen für eine Projektstruktur geben?

Kopfgeld

Ich vergebe das Kopfgeld an @antpaw, weil er mir eine Kohana-Anwendung mit einer Geschäftslogik zur Verfügung gestellt hat, die mir viele Beispiele liefert.Ein Hoch auch auf @Pixel Developer für deinen hervorragenden Beitrag – wie so oft würde ich mir wünschen, dass man ein Kopfgeld teilen könnte!

War es hilfreich?

Lösung

Für die Anmeldung würde ich das Authentifizierungsmodul verwenden, das mit Kohana geliefert wird.Dadurch erhalten Sie die Rollentabelle, in der Sie die möglichen Berechtigungsoptionen einrichten und diese später den Benutzern zuordnen können.Danach können Sie innerhalb der __constructor() oder action_function() jedes Controllers prüfen, ob der Benutzer die erforderliche Rolle hat, z.B.mit der Funktion ->has().Sie sollten auch das ORM-Modul verwenden, es ist einfach großartig, da es viele Beziehungen zwischen den Tabellen gibt.Auch die Methode __get() innerhalb eines ORM-Objekts kann äußerst praktisch sein.

Es ist auch ziemlich einfach, eine Controller-Funktion zu erweitern, indem man den neuen Parameter auf NULL setzt und in einer if-Anweisung darauf prüft.z.B.Sie benötigen nur eine Funktion, um einen alten Eintrag zu bearbeiten oder einen neuen hinzuzufügen.

public funciton action_manage($id = NULL)
{
    $entry = ORM::factory('entry', $id); // if id is null a new entry will be returned 
}

Es ist außerdem wichtig, dass Sie die Ansichten in Unterordner strukturieren, um ein unübersichtliches Ansichtsverzeichnis zu vermeiden.

Andere Tipps

Hier gibt es viele Fragen zu beantworten, ich werde mein Bestes geben.

Kennen Sie reale Beispiele für „datenbankintensive“ Anwendungen wie Verzeichnisse, Online-Communities ...mit einem Log-in-Bereich auf Kohana 3, in dem ich einen Blick darauf werfen kann, wie sie das machen?

Es gibt einige Beispielanwendungen.Woody Gilk (Kohana-Gründer) hat den Code auf seiner persönlichen Website veröffentlicht Github.Für den Login-Bereich vergibt er einen Cookie-Wert.Kohana 3 / 2.4 signiert die Cookies, was sie sicherer macht und die Notwendigkeit von Sitzungen beseitigt.Da dies möglicherweise nicht jedermanns Geschmack ist, können Sie jederzeit die integrierte Authentifizierungsbibliothek verwenden, die sowohl Sitzungen als auch Cookies verwendet.

Hier sind einige andere Projekte, die Sie interessieren könnten:

  • Shindig - Leichtes Blog-Modul für Kohana 3
  • Kohanut - Ein erweiterbares CMS, geschrieben in Kohana 3

Gibt es Konventionen oder Best Practices für die Strukturierung eines erweiterbaren Anmeldebereichs für Endbenutzer in einem Kohana-Projekt, der nicht nur eine Unternehmensverzeichnisseite, sondern auch weitere Produkte auf separaten Seiten verwalten kann?

Wenn ich Sie richtig verstehe, möchten Sie für jede dieser Seiten ein Anmeldefeld erstellen?Mit Kohana 3 ist das einfach, da wir die Vorteile nutzen können H im HMVC.Sam de Fressyinet hat im iBuilding Tech Blog einen Artikel geschrieben, in dem er detailliert beschreibt, worum es geht. Webanwendungen mit HMVC skalieren.

Sie können dann eine interne Anfrage an den Login-Controller oder eine Aktion senden und die Antwort auf Ihrer Ansichtsseite ausgeben.

$login = Request::factory('login')->execute()->response;

$login enthält jetzt das Anmeldeformular, das Sie an einer beliebigen Stelle platzieren können.Möglicherweise möchten Sie eine andere Antwort zurückgeben, wenn die Anfrage intern ist, weshalb dieser Codeabschnitt nützlich sein kann:

if (Request::instance() !== $this->request)
{
    print 'Internal called made with Request::factory';
}

Kennen Sie gute Ressourcen zum Erstellen komplexer Anwendungen mit Kohana?

Es wird keine Dokumentation geben, die Ihnen zeigt, wie Sie komplizierte Anwendungen erstellen.Die Kohana-Community ist der Ansicht, dass Sie ein PHP-Entwickler sind und in der Lage sein sollten, diese Probleme selbst zu lösen.Wenn das nicht möglich ist, sollten Sie Kohana nicht verwenden.

Haben Sie etwas Ähnliches gebaut und könnten mir Empfehlungen für eine Projektstruktur geben?

Sobald Sie verstehen, wie Kohana 3 Dateien findet, sind die Dinge leicht zu verstehen.

|- classes
|-- controller
|-- model
|- views

Zum Beispiel:

Controller_Mathew extends Controller 

Sucht nach einer Datei namens mathew.php In:

classes/controller

Um tiefere Verzeichnisse anzugeben, können Unterstriche verwendet werden.Beispiel:

Controller_Mathew_Davies extends Controller

sucht nach einer Datei namens davies.php In:

classes/controller/mathew/

Wie Sie sehen, fungieren die Unterstriche im Controllernamen als Verzeichnistrennzeichen.Dies trifft auf Modelle und Vanilla-Klassen zu.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top