Kohana ist ein PHP 5-Framework, das das MVC-Architekturmuster (Model View Controller) verwendet. Es gibt mehrere Gründe, warum Sie sich für Kohana entscheiden sollten, aber die wichtigsten sind Sicherheit, Schwerelosigkeit und Einfachheit. In diesem Tutorial möchte ich Ihnen die wichtigsten Funktionen vorstellen. Mit einer einfachen Demonstration zeige ich Ihnen, wie viel Zeit Sie mit Kohana sparen können.
Kohana ist ein PHP5-Framework, das das Architekturmuster des Model View Controller verwendet. MVC behält die Anwendungslogik bei
getrennt von der Präsentation. Dies ermöglicht uns, saubereren Code zu erstellen und Zeit für die Fehlersuche zu sparen.
Wenn Sie mit diesem Muster nicht vertraut sind:
Kohana war ursprünglich eine Gabel von CodeIgniter (CI), einem Open-Source-Produkt von EllisLab. Es gibt viele Ähnlichkeiten zwischen CI und Kohana, aber der gesamte Code ist entweder neu oder vollständig neu geschrieben. Wie Sie auf der offiziellen Kohana-Website nachlesen können, sind folgende Hauptmerkmale:
Lass uns anfangen. Besuchen Sie die offizielle Website von Kohana http://kohanaphp.com und klicken Sie auf das grüne Kästchen in der rechten Ecke, um die neueste Version herunterzuladen. Alle Kohana-Bibliotheken, Hilfsprogramme und Ansichten sind im Standard-Downloadpaket enthalten. Sie können jedoch ggf. zusätzliche Module, Herstellertools und Sprachen auswählen. Für dieses Tutorial kann das Standardpaket ausreichend sein. Klicken Sie auf "Download Kohana!" um den Download zu beginnen.
Nachdem Sie den Download abgeschlossen haben:
$ config ['site_domain'] = 'localhost / kohana';
Kohana läuft in nahezu jeder Umgebung mit minimaler Konfiguration. Es gibt einige Mindestanforderungen an den Server:
Es sind auch einige Erweiterungen erforderlich.
Wenn Ihre Installation erfolgreich abgeschlossen wurde, werden Sie zu dieser Testseite weitergeleitet:
Wenn einer der Tests fehlschlägt, müssen Sie diese korrigieren, bevor Sie fortfahren.
Wenn alle Tests erfolgreich sind, wechseln Sie in das Kohana-Verzeichnis und entfernen oder benennen Sie das Skript install.php um. Aktualisieren Sie und Sie werden eine Startseite wie diese sehen:
Kohana ist bereit zu gehen. Es ist keine andere Konfiguration erforderlich. Dieser Rahmen ist erstaunlich. Ist es nicht Lassen Sie uns etwas Code überprüfen. Folge mir.
Kanonische Lernprogramme beginnen mit dem Beispiel "Hallo Welt". Ich denke stattdessen, dass eine einfache Anwendung Ihnen eine klare Vorstellung davon geben kann, wie das Framework funktioniert. Wir werden also einen CD-Sammlungsmanager erstellen - nur für eine unterhaltsame Demonstration. Bevor wir mit der Codierung beginnen, ist eine kurze Einführung in das Kohana-Dateisystem erforderlich.
Unsere Bewerbung wird in der Anwendung Mappe. In diesem Ordner befinden sich mehrere Unterordner, für unser Projekt benötigen wir jedoch Folgendes:
Die restlichen Unterordner sind für dieses Lernprogramm nicht erforderlich. Ich lade Sie daher ein, auf der Kohana-Website mehr zu erfahren.
Das System Ordner beherbergen den Kohana-Kern und die Kohana-Tools wie Bibliotheken, Helfer und vordefinierte Konfigurationsdateien. In diesem Projekt verwenden wir einige Bibliotheken und einige Helfer - gute Werkzeuge, um Ihre Arbeit zu beschleunigen.
Das Vermögenswerte Ordner ist kein vordefinierter Kohana-Ordner. Ich habe es für Mediendateien wie CSS, JS und Bilder erstellt. Ich zeige Ihnen, wie Sie diese Dateien in das Projekt einfügen.
Das Module Ordner ist der Ort, an dem wiederverwendbare Sammlungen verwandter Dateien abgelegt werden können, die einer Anwendung eine bestimmte Funktionalität hinzufügen. Das vom Kohana-Team bereitgestellte Authentifizierungsmodul ist ein Beispiel für ein Modul.
Dies ist eine sehr kurze Einführung in das Kohana-Dateisystem, reicht aber für die Zwecke dieses Tutorials aus. Ich möchte dich nicht mehr mit der Theorie langweilen.
Ich habe MySQL als mein DBMS gewählt, aber bedenke, dass Kohana auch MsSQL, MySQLi, PostgreSQL und PDOSqlite unterstützt. Erstellen Sie eine Datenbank mit dem Namen "cd_collection" oder wählen Sie den gewünschten Namen aus und führen Sie die folgende SQL-Anweisung über phpMyAdmin oder ein anderes Tool aus, um die Verwaltung von MySQL zu übernehmen.
CREATE TABLE 'album' ('id' int (11) NOT NULL auto_increment, 'name' varchar (50) sortieren utf8_bin NOT NULL, 'author' varchar (50) sortieren utf8_bin NOT NULL, 'genre_id' int (11) NOT NULL , PRIMARY KEY ('id'), KEY 'genre_id' ('genre_id')) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin AUTO_INCREMENT = 19; INSERT INTO 'Alben' ('ID', 'Name', 'Autor', 'Genre_id') WERTE (2, 'Linien, Reben und Versuchungszeiten', 'Jonas Brothers', 16), (3, 'ENDE') , 'The Black Eyed Peas', 16), (4, 'Rückfall', 'Eminem', 18), (5, 'Monumente und Melodien', 'Incubus', 1), (6, 'Thriller', 'Michael Jackson ', 16), (7, "Zurück in Schwarz", "AC / DC", 4), (8, "Die dunkle Seite des Mondes", "Pink Floyd", 4), (9, "Bat out") of Hell ',' Meat Loaf ', 4), (10,' Backstreet Boys ',' Millennium ', 16), (11,' Gerüchte ',' Fleetwood Mac ', 4), (12,' Komm schon vorbei ') , 'Shania Twain', 16), (13, 'Led Zeppelin IV', 'Led Zeppelin', 4), (14, 'Gezackte kleine Pille'), 'Alanis Morissette', 4), (15, 'Sgt. Pepper 's Lonely Hearts Club Band', 'The Beatles', 16), (16, 'Fallen in Dich', 'Céline Dion', 16), (17, 'Music Box', 'Mariah Carey', 16 ), (18, "In den USA geboren", "Bruce Springsteen", 4); CREATE TABLE 'Genres' ('id' int (11) NOT NULL auto_increment, 'name' varchar (50) sortiert utf8_bin NOT NULL, PRIMARY KEY ('id'), EINZIGARTIGER KEY 'name' ('name')) ENGINE = I nnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin AUTO_INCREMENT = 22; INSERT INTO "Genres" ('id', 'name') WERTE (1, 'Alternative Rock'), (2, 'Blues'), (3, 'Classical'), (4, 'Rock'), (5 ('Country'), (6, 'Dance'), (7, 'Folk'), (8, 'Metal'), (9, 'Hawaiian'), (10, 'Imports'), (11, ') Indie-Musik '), (12,' Jazz '), (13,' Latin '), (14,' New Age '), (15,' Opera '), (16,' Pop '), (17,') Soul '), (18, "Rap"), (20, "Soundtracks"), (21, "World Music"); ALTER TABLE 'Alben' ADD CONSTRAINT 'genre_inter_relational_constraint' FOREIGN KEY ('genre_id') REFERENCES 'Genres' ('id') ON DELETE CASCADE ON UPDATE CASCADE;
Wie Sie sehen, erstellt das SQL zwei Tabellen, Alben und Genres und füllt sie mit einigen Daten. Die letzte SQL-Anweisung fügt eine Einschränkung für den Fremdschlüssel "genre_id" hinzu..
Die Datenbankstruktur ist sehr einfach und bedarf keiner weiteren Erklärung.
Nun müssen Sie Kohana mitteilen, wo sich Ihre Datenbank befindet und wie Sie darauf zugreifen können. Bearbeiten Sie die globale Konfigurationsdatei system / config / database.php wie folgt
$ config ['default'] = array ('benchmark' => TRUE, 'persistent' => FALSE, 'verbindung' => array ('type' => 'mysql', 'user' => 'root', ' pass '=>' root ',' host '=>' localhost ',' port '=> FALSE,' socket '=> FALSE,' database '=>' cd_collection '),' character_set '=>' utf8 ', 'table_prefix' => ", 'object' => TRUE, 'cache' => FALSE, 'escape' => TRUE);
Dieser Code teilt Kohana mit, eine Verbindung zu einer MySQL-Datenbank namens "cd_collection" auf localhost mit dem Benutzernamen "root" und dem Kennwort "root" herzustellen. Sie müssen diese Einstellungen entsprechend Ihrer Datenbankserverkonfiguration ändern.
Lassen Sie uns jetzt unseren ersten Controller erstellen. Erinnere dich an diese Konventionen.
Denken Sie auch daran, wie Kohana seine URLs strukturiert und wie Sie eine Controller-Methode aufrufen können. z. B. http: // hostname/kohana_directory/index.php/controller/function.
Schauen wir uns diesen einfachen Controller an.
PHP5 OOP ist eine Voraussetzung. Wenn Sie sich also nicht auskennen, können Sie hier mehr erfahren.
Die Konstruktorfunktion mit dem Namen __construct initialisiert die Klasse und ruft den übergeordneten Konstruktor auf.
Die Indexfunktion ist die Standardfunktion. Sie wird also aufgerufen, wenn wir den Controller ohne aufrufen
Angabe einer beliebigen Funktion (z. B. http: //localhost/index.php/kohana/album. Nach dem Namenscontroller
Es gibt keine Funktion, die Standardindexfunktion wird aufgerufen.)In Anbetracht dieser Grundregeln konzentrieren wir uns auf unsere Anwendung. Der Album-Controller implementiert alle Aktionen für
die Alben-Sammlungsverwaltung. Mit diesem Controller können wir ein neues Album erstellen, um die in unserer Datenbank gespeicherten Alben anzuzeigen,
um ein Album zu aktualisieren und ein Album zu löschen.Ändern wir also die Klasse wie folgt.
Erstellen Sie eine Datei mit dem Namen album.php im Anwendung / Steuerungen / und fügen Sie folgendes ein.
album_model = neues Album_Model; $ this-> genre_model = new Genre_Model; $ this-> list_view = neue Ansicht ('list'); $ this-> update_view = neue Ansicht ('Update'); $ this-> create_view = neue Ansicht ('create'); public function index () $ this-> show_albums_list (); private Funktion show_albums_list () $ album_list = $ this-> album_model-> get_list (); $ this-> list_view-> set ('album_list', $ album_list); $ this-> list_view-> render (TRUE); public function show_create_editor () $ this-> create_view-> set ('genres_list', $ this-> get_genres_list ()); $ this-> create_view-> render (TRUE); public function show_update_editor ($ id) $ album_data = $ this-> album_model-> read ($ id); $ this-> update_view-> set ('album_id', $ album_data [0] -> id); $ this-> update_view-> set ('name', $ album_data [0] -> name); $ this-> update_view-> set ('author', $ album_data [0] -> author); $ this-> update_view-> set ('genre_id', $ album_data [0] -> genre_id); $ this-> update_view-> set ('genres_list', $ this-> get_genres_list ()); $ this-> update_view-> render (TRUE); public function create () $ album_data = array ('name' => $ this-> input-> post ('name'), 'author' => $ this-> input-> post ('author'), 'genre_id' => $ this-> input-> post ('genre_id')); $ this-> album_model-> create ($ album_data); URL :: Weiterleitung ("Album"); public function update () $ album_data = array ('name' => $ this-> input-> post ('name'), 'author' => $ this-> input-> post ('author'), 'genre_id' => $ this-> input-> post ('genre_id')); $ this-> album_model-> update ($ this-> input-> post ('album_id'), $ album_data); URL :: Weiterleitung ("Album"); public function delete ($ id) $ this-> album_model-> delete ($ id); URL :: Weiterleitung ("Album"); private Funktion get_genres_list () $ db_genres_list = $ this-> genre_model-> get_list (); $ genres_list = array (); if (sizeof ($ db_genres_list)> = 1) foreach ($ db_genres_list als $ item) $ genres_list [$ item-> id] = $ item-> name; return $ genres_list;Lassen Sie mich erklären, was dieser Code bewirkt.
Fünf Membervariablen werden oben in der Klasse deklariert:
privates $ album_model; privates $ genre_model; private $ list_view; private $ create_view; privates $ update_view;Diese Mitglieder sind privat, weil ich die Sichtbarkeit nur auf diese Klasse beschränken möchte.
In der build-Methode werden die Modell- und Ansichtsobjekte mit den fünf Elementen erstellt:
$ this-> album_model = neues Album_Model; $ this-> genre_model = new Genre_Model; $ this-> list_view = neue Ansicht ('list'); $ this-> update_view = neue Ansicht ('Update'); $ this-> create_view = neue Ansicht ('create');Um ein Modellobjekt zu erstellen, verwenden Sie diese Syntax:
$ obj_name = neues Name_Model;Verwenden Sie diese Syntax, um ein Ansichtsobjekt zu erstellen:
$ obj_name = new View ('view_filename_without_extension');Nun gibt es zwei Objekte für den Zugriff auf das Album und das Genre-Modell und drei Objekte für den Zugriff auf die Ansichten, die zum Rendern der Präsentation erforderlich sind.
Die Indexmethode ruft die Methode show_albums_list auf, in der alle in der Datenbank gespeicherten Alben aufgeführt sind.
$ album_list = $ this-> album_model-> get_list (); $ this-> list_view-> set ('album_list', $ album_list); $ this-> list_view-> render (TRUE);In dieser Methode können Sie sehen, wie das Modell und das Ansichtsobjekt für den Zugriff auf relative Methoden verwendet werden. "get_list" ist eine Modellmethode (wir werden sie später sehen), die alle in der Datenbank gespeicherten Alben zurückgibt. Das Ergebnis wird im Array "$ album_list" gespeichert. Um das Ergebnis-Array vom Controller an die View zu übergeben, wird die "Set" -Methode für das View-Objekt aufgerufen. Diese Methode erfordert zwei Parameter: eine neue leere Variable (album_list), um Daten einer vorhandenen Variablen ($ album_list) zu enthalten. Nun enthält die neue Variable "album_list" das Array $ album_list (später wird gezeigt, wie der Inhalt in der Ansicht angezeigt wird). Die Methode "render" mit dem Parameter TRUE ist notwendig, um Daten an den Browser auszugeben.
Die Methode show_create_editor zeigt die Benutzeroberfläche zum Einfügen eines neuen Albums.
$ this-> create_view-> set ('genres_list', $ this-> get_genres_list ()); $ this-> create_view-> render (TRUE);Die Liste der Genres wird an die Ansicht übergeben.
Die show_update_editor-Methode zeigt die Benutzeroberfläche zum Aktualisieren eines vorhandenen Albums.
$ album_data = $ this-> album_model-> read ($ id); $ this-> update_view-> set ('album_id', $ album_data [0] -> id); $ this-> update_view-> set ('name', $ album_data [0] -> name); $ this-> update_view-> set ('author', $ album_data [0] -> author); $ this-> update_view-> set ('genre_id', $ album_data [0] -> genre_id); $ this-> update_view-> set ('genres_list', $ this-> get_genres_list ()); $ this-> update_view-> render (TRUE);"read" ist eine Modellmethode (wir werden es später sehen), die Daten ($ album_data) des Albums mit einer ID gleich $ id zurückgibt. Dann wird jedes einzelne Element des zurückgegebenen Datenalbums an die Ansicht übergeben.
Die Erstellungsmethode empfängt Daten für ein neues Album aus der Ansicht, und die Daten werden in der Datenbank gespeichert.
$ album_data = array ('name' => $ this-> input-> post ('name'), 'author' => $ this-> input-> post ('author'), 'genre_id' => $ this -> input-> post ('genre_id')); $ this-> album_model-> create ($ album_data); URL :: Weiterleitung ("Album");$ album_data ist ein Array, das die POST-Daten aus der Ansicht enthält. Um das Album zu speichern, wird das Array an die Methode zum Erstellen von Modellen übergeben. Die letzte Zeile ist ein Aufruf einer Hilfsmethode. Helfer sind einfach Funktionen, die Sie bei der Entwicklung unterstützen. Die Hilfsklassen werden automatisch vom Framework geladen. Helfer werden als statische Methoden einer Klasse deklariert, sodass die Klasse nicht instanziiert werden muss. In diesem Fall wird die Methode "redirect" des Hilfsprogramms "url" aufgerufen, die Kohana anweist, den Browser an den Album-Controller umzuleiten. Dies vermeidet einen neuen Einsatz (zum Beispiel F5 drücken)..
"Helfer sind einfach Funktionen, die Sie bei der Entwicklung unterstützen."
Die Aktualisierungs- und Löschmethoden arbeiten auf dieselbe Weise wie die Erstellungsmethode oben.
Die letzte Methode get_genres_list ruft die Genresliste aus dem Modell ($ db_genres_list) ab und erstellt ein neues Array ($ genres_list) für das Auswahlfeld in den Ansichten.
$ db_genres_list = $ this-> genre_model-> get_list (); $ genres_list = array (); if (sizeof ($ db_genres_list)> = 1) foreach ($ db_genres_list als $ item) $ genres_list [$ item-> id] = $ item-> name; return $ genres_list;Schritt 8: Projektmodell erstellen
Lassen Sie uns nun Modelle für unsere Webanwendung erstellen. Erinnere dich an diese Konventionen.
Hier ist der Modellcode des Albums. Erstellen Sie eine Datei mit dem Namen album.php im Anwendung / Modelle / und fügen Sie den untenstehenden Code ein.
album_table = 'Alben'; $ this-> genre_table = 'genres'; public function read ($ id) $ this-> db-> where ('id', $ id); $ query = $ this-> db-> get ($ this-> album_table); return $ query-> result_array (); public function delete ($ id) $ this-> db-> delete ($ this-> album_table, array ('id' => $ id)); public function update ($ id, $ data) $ this-> db-> update ($ this-> album_table, $ data, array ('id' => $ id)); public function create ($ data) $ this-> db-> insert ($ this-> album_table, $ data); public function get_list () $ this-> db-> select ('alben.id als id, alben.name als name, alben.autor als autor, genres.name als genre'); $ this-> db-> from ($ this-> album_table); $ this-> db-> join ($ this-> genre_table, 'genres.id', 'album.genre_id'); $ query = $ this-> db-> get (); return $ query-> result_array ();
Alle Methoden in den Modellen verwenden die Query Builder-Syntax. Dieses Kohana-Tool beschleunigt die Entwicklung von Datenbanken und vereinfacht die Erstellung von Abfragen.
Zwei Membervariablen werden oben in der Klasse deklariert:
private $ album_table; private $ genre_table;
Diese Mitglieder sind privat, weil ich die Sichtbarkeit nur auf diese Klasse beschränken möchte. Sie sind die Container für die Namen der Datenbanktabellen.
Die erste Zeile in der Konstruktormethode lädt die Kohana-Datenbankbibliothek in $ this-> db. In der zweiten und dritten Zeile werden die beiden Klassenmitglieder initialisiert.
parent :: __ construct (); $ this-> album_table = 'Alben'; $ this-> genre_table = 'genres';
Die Abfrage in der read-Methode ruft Albumdatensätze mit einer bestimmten Kennung ("$ id") ab..
$ this-> db-> where ('id', $ id); $ query = $ this-> db-> get ($ this-> album_table); return $ query-> result_array ();
Die Abfrage in der delete-Methode löscht die Albumtabellenzeile mit einem bestimmten Bezeichner ("$ id")..
$ this-> db-> delete ($ this-> album_table, array ('id' => $ id));
Die Abfrage in der Aktualisierungsmethode aktualisiert die Albumtabellenzeile mit einem bestimmten Bezeichner ("$ id") mit neuen Werten aus dem Array "$ data".
$ this-> db-> update ($ this-> album_table, $ data, array ('id' => $ id));
Das Array "$ data" muss Datensatznamen als Schlüssel des Arrays und Werte als Werte des Arrays enthalten. Das Array "$ data" muss folgende Form haben:
$ data = array ('name' => 'album_name', 'author' => 'author_name', 'genre_id' => 'genre_id');
Die Abfrage in der create-Methode fügt einen neuen Datensatz mit Werten des Arrays "$ data" ein.
$ this-> db-> insert ($ this-> album_table, $ data);
Das Array "$ data" muss folgende Form haben:
$ data = array ('id' => 'album_id', 'name' => 'album_name', 'author' => 'author_name', 'genre_id' => 'genre_id');
Die Abfrage in der get_list-Methode ruft alle Albenzeilen ab.
$ this-> db-> select ('alben.id als id, alben.name als name, alben.autor als autor, genres.name als genre'); $ this-> db-> from ($ this-> album_table); $ this-> db-> join ($ this-> genre_table, 'genres.id', 'album.genre_id'); $ query = $ this-> db-> get (); return $ query-> result_array ();
Nun das Genre-Modell. Erstellen Sie eine Datei mit dem Namen genre.php im Anwendung / Modelle / und fügen Sie den Code darunter ein:
genre_table = 'genres'; function get_list () $ query = $ this-> db-> get ($ this-> genre_table); return $ query-> result_array ();
Dieses Modell ist sehr einfach, so dass ich keine weitere Zeit vergeude, um es zu kommentieren. Die Modelle und der Controller sind einsatzbereit. Lassen Sie uns nun an den Ansichten arbeiten.
Ansichten sind Dateien, die die Präsentationsschicht für Ihre Anwendung enthalten. Der Zweck besteht darin, diese Informationen von Ihrer Anwendungslogik getrennt zu halten, um die Wiederverwendbarkeit und den Code zu verbessern. Für dieses Projekt sind drei Ansichten erforderlich: eine Ansicht zum Auflisten der Albumsammlung, eine Ansicht zum Erstellen eines neuen Albums und eine Ansicht zum Bearbeiten eines vorhandenen Albums.
Erstellen Sie eine Datei mit dem Namen list.php im Anwendung / Ansichten / und füge folgenden Code ein:
CD-SAMMLUNG
CD-Sammlung | ||||
Name des Albums | Autor | Genre | ". $ item-> name." | "; Echo"". $ item-> author." | "; Echo"". $ item-> Genre." | "; Echo"".html :: anchor ('album / delete /' .$ item-> id, html :: image ('assets / images / delete.png'))." | "; Echo"".html :: anchor ('album / show_update_editor /' .$ item-> id, html :: image ('assets / images / edit.png'))." | "; Echo"";?>
Diese Ansicht zeigt eine HTML-Seite mit einer Liste aller Alben. Diese Liste wurde mithilfe der foreach-Schleife erstellt, die die Informationen in einer HTML-Tabelle druckt. Für jede Albumreihe gibt es zwei Bilder: ein "rotes Kreuz" und ein "Taschenbuch". Sie verknüpfen jeweils die Löschmethode des Controllers und die Aktualisierungsmethode. Beide übergeben die Album-ID mit einer Get-Anforderung an den Album-Controller. Über der Liste befindet sich eine Schaltfläche zum Erstellen neuer Alben. In diesem Code verwenden wir auch einen von Kohana bereitgestellten HTML-Helper, der Operationen zum Schreiben von HTML-Seiten beschleunigt.
Erstellen wir nun eine Datei mit dem Namen create.php im Anwendung / Ansichten /.
CD-SAMMLUNG
Neues Album erstellen | ".form :: label ('name', 'Name:')." | "; Echo"".form :: input ('name',"). " | "; Echo""; Echo"
".form :: label ('author', 'Author:')." | "; Echo"".form :: input ('author',"). " | "; Echo"
".form :: label ('genre', 'Genre:')." | "; Echo"".form :: dropdown ('genre_id', $ genres_list)." | "; Echo"
".form :: submit ('submit', 'album erstellen')." | "; Echo"
Die letzte und nicht die letzte ist die Aktualisierungsansicht. Erstellen wir eine Datei mit dem Namen update.php im Anwendung / Ansichten /.
CD-SAMMLUNG
Album aktualisieren | ".form :: label ('name', 'Name:')." | "; Echo"".form :: input ('name', $ name)." | "; Echo""; Echo"
".form :: label ('author', 'Author:')." | "; Echo"".form :: input ('author', $ author)." | "; Echo"
".form :: label ('genre', 'Genre:')." | "; Echo"".form :: dropdown ('genre_id', $ genres_list, $ genre_id)." | "; Echo"
".form :: submit ('submit', 'Update album')." | "; Echo"
Der erste ist ein einfacher Editor, mit dem der Benutzer Informationen zu einem neuen Album einfügen kann.
Die Felder wie Autor und Name werden mit einer HTML-Eingabe und einem Genre mit einem eingefügt
Kombinationsfeld. Sobald der Benutzer auf die Schaltfläche Erstellen klickt, werden alle Informationen übergeben,
als POST-Anforderung zur Erstellungs- / Aktualisierungsmethode im Album-Controller. Wenn der Controller diese erhalten hat
Variablen, ruft es das Modell auf, das ein neues Album in die Datenbank einfügt. Die Formulare verwenden in beiden Ansichten Kohana Form Helper.
Um unserer Anwendung ein wenig Stil zu verleihen, erstellen Sie das Vermögenswerte Ordner im Kohana-Stamm auf derselben Ebene des Anwendungsordners. Öffnen Sie es jetzt und erstellen Sie zwei neue Ordner: css und Bilder.
In dem css Ordner erstellen Sie eine neue Datei mit dem Namen style.css und füge das ein:
eine Schriftfamilie: Verdana, Genf, Arial, Helvetica, Serifenlose; Schriftgewicht: normal; Schriftgröße: 12px; Farbe: # 00F; vertikal ausrichten: Text oben; img border: 0; label Schriftfamilie: Verdana, Genf, Arial, Helvetica, serifenlos; Schriftgewicht: normal; Schriftgröße: 12px; Eingabe border: 1px solid # 000; Wählen Sie width: 185px; table.editor text-align: center; Schriftfamilie: Verdana, Genf, Arial, Helvetica, Serifenlos; Schriftgewicht: normal; Schriftgröße: 11px; Farbe: #fff; Breite: 280px; Hintergrundfarbe: # 666; Grenze: 0px; Grenzzusammenbruch: Zusammenbruch; Randabstand: 0px; table.editor td.editor_title Hintergrundfarbe: # 666; Farbe: #fff; Polsterung: 4px; Text ausrichten: links; Schriftdicke: fett; Schriftgröße: 16px; table.editor td padding: 4px; table.list text-align: center; Schriftfamilie: Verdana, Genf, Arial, Helvetica, Serifenlos; Schriftgewicht: normal; Schriftgröße: 11px; Farbe: #fff; Breite: 280px; Hintergrundfarbe: # 666; Grenze: 0px; Grenzzusammenbruch: Zusammenbruch; Randabstand: 0px; table.list td.item background-color: #CCC; Farbe: # 000; Polsterung: 4px; Text ausrichten: links; border: 1px #fff fest; table.list td.list_title, table.list td.headers Hintergrundfarbe: # 666; Farbe: #fff; Polsterung: 4px; Text ausrichten: links; border-bottom: 2px #fff fest; Schriftdicke: fett; table.list td.list_title Schriftgröße: 16px; table.list td.headers Schriftgröße: 12px;
Kopieren Sie nun die folgenden Bilder in die Bilder Mappe:
Das ist alles. Zeigen Sie mit Ihrem Browser auf http: //localhost/kohana/index.php/album und du solltest etwas ähnliches sehen:
Wenn Sie versuchen, ein neues Album zu erstellen oder ein vorhandenes zu bearbeiten, sollten Sie Folgendes sehen:
Natürlich sind für diese Anwendung einige Verbesserungen erforderlich. Mit etwas Code haben Sie jedoch eine kleine Webanwendung erstellt.
Nun wissen Sie, wie Sie das MVC-Muster mit Kohana verwenden und wie Sie Datenbankbibliotheken und -helfer verwenden. Um mehr zu erfahren, lesen Sie die offizielle Dokumentation.
Dank Kohana ist die Codewartung eine einfache Aufgabe, und das Hinzufügen neuer Funktionen ist ein Kinderspiel. Ich hoffe, dir hat dieses Tutorial gefallen. Bleiben Sie dran und erfahren Sie mehr