Das Folgende ist ein Gastbeitrag von Roma Azarov. Ich konnte ihm leicht folgen und hatte die Demo-App in wenigen Minuten auf meinem Rechner zum Laufen gebracht. Es ist ziemlich cool, wie einfach es geworden ist, schnell leistungsstarke Webanwendungen zu erstellen.
CakePHP ist ein kostenloses, quelloffenes Framework für schnelle Entwicklung in PHP. Es ist eine grundlegende Struktur für Programmierer, um Webanwendungen zu erstellen, und ermöglicht es Ihnen, strukturiert und schnell zu arbeiten – ohne Flexibilitätsverlust. In diesem Tutorial werden wir die Vorteile der Verwendung von CakePHP untersuchen und ein Beispielprojekt, eine Event-Manager-Anwendung, bereitstellen, um Ihnen den Einstieg zu erleichtern.
CakePHP nimmt die Monotonie aus der Webentwicklung. Wir stellen Ihnen alle Werkzeuge zur Verfügung, die Sie benötigen, um mit dem Coden dessen zu beginnen, was Sie wirklich erledigen müssen: die Logik, die spezifisch für Ihre Anwendung ist. Anstatt jedes Mal das Rad neu zu erfinden, wenn Sie sich an ein neues Projekt setzen, holen Sie sich eine Kopie von CakePHP und beginnen Sie mit dem eigentlichen Kern Ihrer Anwendung. CakePHP hat ein aktives Entwicklungsteam und eine Community, die dem Projekt einen großen Wert verleihen. Neben der Vermeidung von Rad-Neuerfindungen ist der Kern Ihrer Anwendung gut getestet und wird ständig verbessert.
Hier ist eine kurze Liste von Funktionen, die Sie bei der Verwendung von CakePHP genießen werden
- Aktive, freundliche Community
- Flexible Lizenzierung
- Kompatibel mit PHP-Versionen 4 und 5
- Integriertes CRUD für Datenbankinteraktion
- Anwendungsskelett
- Code-Generierung
- MVC (Model, View, Controller) Architektur
- Request-Dispatcher mit sauberen, benutzerdefinierten URLs und Routen
- Integrierte Validierung
- Schnelle und flexible Vorlagen (PHP-Syntax, mit Helfern)
- View-Helfer für AJAX, JavaScript, HTML-Formulare und mehr
- Komponenten für E-Mail, Cookie, Sicherheit, Sitzung und Anforderungsbehandlung
- Flexibles ACL (Access Control List)
- Datenbereinigung
- Flexibles Caching
- Lokalisierung
- Funktioniert von jedem Webseitenverzeichnis aus, mit wenig bis gar keiner Apache-Konfiguration
Idee
Die Hauptidee unseres Tutorials ist die Erstellung eines einfachen Event-Managers mit CakePHP. Unser Projekt wird
- Events erstellen/aktualisieren/löschen mit oder ohne angehängtem Ort (Dies wird oft als CRUD-Anwendung bezeichnet)
- Orte erstellen/aktualisieren/löschen
- Alle Events in einer **Listenansicht** oder **Kalenderansicht** anzeigen
- Einen RSS-Feed für alle Events bereitstellen
Unser Projekt beinhaltet auch diese fortgeschrittenen technischen Konzepte
- Verwendung von Drittanbieter-Komponenten (Swift Mailer)
- AJAX-Funktionalität (jQuery + CakePHP)
- Benutzerdefinierte Helfer
- Benutzerdefinierte Benutzerzugriffskontrolle (basierend auf Benutzerrolle)
- Backend erstellen
Dies sind die Dinge, die Sie für dieses Projekt benötigen
- Apache-Webserver mit aktiviertem mod_rewrite
- PHP-Version 5 oder höher
- MySQL
- SVN-Client
Projektinstallation
Wenn Sie lokal arbeiten möchten, kann ein Tool wie MAMP/LAMP/WAMP eine gute Wahl sein. Sie können eine lokale Entwicklungdomain erstellen und von dort aus arbeiten.

Wo auch immer Sie sich entscheiden zu arbeiten, erstellen Sie einen Ordner im Stammverzeichnis Ihres Servers. Möglicherweise arbeiten Sie lokal mit einem Tool wie MAMP/WAMP/LAMP oder auf einem Online-Entwicklungsserver. Sie können ihn beliebig benennen. Navigieren Sie mit Ihrem Shell-Zugriff zu diesem Ordner und führen Sie diesen Befehl aus
svn checkout http://cakephp-tricks.googlecode.com/svn/trunk/ cakephp-tricks-read-only


Erstellen der Datenbank und SQL-Struktur
Nun müssen Sie eine neue Datenbank in MySQL erstellen. Tun Sie dies, wie auch immer Ihr Webhoster es anbietet, oder lokal können Sie ein Tool wie Sequel Pro verwenden.

Sie können sie beliebig benennen und ihr ein beliebiges Passwort geben. Dann müssen Sie dieses SQL ausführen, um die Struktur einzurichten
CREATE DATABASE `tricks_cake`;
USE `tricks_cake`;
/* Table structure for table `events` */
DROP TABLE IF EXISTS `events`;
CREATE TABLE `events` (
`id` int(10) unsigned NOT NULL auto_increment,
`user_id` int(10) unsigned default NULL,
`location_id` int(10) unsigned default NULL,
`exp_date` datetime default NULL,
`title` varchar(255) default '',
`description` text,
`url` varchar(255) default '',
`complete` enum('yes','no') default 'no',
`created` datetime default NULL,
`modified` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/* Table structure for table `locations` */
DROP TABLE IF EXISTS `locations`;
CREATE TABLE `locations` (
`id` int(10) unsigned NOT NULL auto_increment,
`user_id` int(10) unsigned default NULL,
`title` varchar(255) default '',
`city` varchar(50) default '',
`state` varchar(2) default '',
`zip` int(10) unsigned default NULL,
`address1` varchar(255) default '',
`address2` varchar(255) default '',
`created` datetime default NULL,
`modified` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/* Table structure for table `users` */
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL auto_increment,
`email` varchar(50) default '',
`pass` varchar(50) default '',
`enabled` enum('yes','no') default 'yes',
`activated` enum('yes','no') default 'no',
`ac_code` varchar(32) default '',
`role` enum('admin','user') default 'user',
`created` datetime default NULL,
`modified` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

Dieses SQL befindet sich auch im Projekt unter /app/config/schema/structure.sql
Einrichtung der Projektdateien
Nachdem wir unser CakePHP-Projekt installiert und in unserer Serverumgebung eingerichtet haben, werfen wir einen Blick auf den Code. Wir müssen einige Änderungen an den Konfigurationsdateien vornehmen.
core.php
Dies ist die Hauptkonfigurationsdatei. Sie müssen die Standardkonfigurationsdatei (unter /app/config/core.php.default) in core.php umbenennen oder kopieren, im selben Ordner. Als Nächstes müssen Sie einige benutzerdefinierte Einstellungen ändern.
Die folgenden Zeilen müssen im Code, der bereits in dieser Datei vorhanden ist, angepasst werden und helfen uns, E-Mails aus der Anwendung zu versenden (erforderlich für den Versand von Bestätigungs-E-Mails für neue Benutzer)
// SMTP
Configure::write( 'smtp_type', 'tls' );
Configure::write( 'smtp_timeout', 60 );
Configure::write( 'smtp_host', 'smtp.gmail.com' );
Configure::write( 'smtp_port', 465 );
Configure::write( 'smtp_user', '[email protected]' );
Configure::write( 'smtp_password', '' );
Configure::write( 'smtp_encryption', 'ENC_SSL' );
Configure::write( 'smtp_mail_from_name', 'noreply' );
Configure::write( 'smtp_mail_from_addr', '[email protected]' );
Die obigen Werte stammen von einem Test-/Schrott-GMail-Konto, das wir dafür erstellt haben. Wenn Sie E-Mails von Ihrem eigenen Google-Konto versenden möchten, müssen Sie 3 Variablen ändern: smtp_user, smtp_password und smtp_mail_from_addr
Ändern Sie nun site_name Ihres Projekts in die URL, auf der es sich befindet
// globals
Configure::write( 'site_name', 'learning-cakephp.dev' );
Es gibt weitere Werte, die Sie möglicherweise ändern möchten, wenn Sie das Projekt erweitern, aber Sie müssen dies im Moment nicht tun. Sie können mehr über die CakePHP core.php Konfigurationsvariablen hier lesen.
database.php
Dies ist die Datenbankkonfigurationsdatei. Sie müssen diese Datei (unter /app/config/database.php.default) in database.php im selben Verzeichnis umbenennen oder kopieren. Füllen Sie dann das $default-Verbindungsarray aus. Eine abgeschlossene Konfiguration sollte ungefähr so aussehen
var $default = array('driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'cakephpuser',
'password' => 'c4k3roxx!',
'database' => 'my_cakephp_project',
'prefix' => '');
Dies sind die Datenbankverbindungsdetails von der Erstellung Ihrer Datenbank für dieses Projekt. Weitere Informationen zur Datenbankkonfiguration.
routes.php
Routing ist eine Funktion, die URLs Controller-Aktionen zuordnet. Sie wurde in CakePHP hinzugefügt, um schöne URLs konfigurierbarer und flexibler zu machen. Die Verwendung von Apache's mod_rewrite ist für die Verwendung von Routen nicht erforderlich, aber sie wird Ihre Adressleiste wesentlich aufgeräumter aussehen lassen. Sie müssen diese Datei derzeit nicht ändern, aber Sie können hier über diese Datei (für zukünftige Verwendung) lesen.
app_controller.php
Diese Datei (unter /app/app_controller.php) ist die Oberklasse für alle Controller in unserem Projekt. Wenn diese Datei existiert, werden alle Controller-Klassen von unserer app_controller erben. Wenn sie nicht existiert, werden sie von der Standarddatei der Bibliotheken unter /cake/libs/controller/app_controller.php erben. Dies ist sehr nützlich, wenn wir alle Controller erweitern müssen. Sie können mehr über die App Controller hier lesen.
app_model.php
Diese Datei (unter /app/app_model.php) ist die Oberklasse für alle Modelle im Projekt. Sie funktioniert genauso wie app_controller, aber für alle Modelle. Wenn Sie sich den Code eines beliebigen Modells ansehen (/app/models), können Sie sehen, dass wir die Eigenschaft $validationSet (anstelle der ursprünglichen $validate-Eigenschaft) verwenden, um die Liste der Validierungsschemata zu erstellen. Dies ermöglicht flexiblere Validierungsdaten, die in der Datenbank gespeichert werden. Außerdem verwenden wir app_model, um benutzerdefinierte Validierungsregeln für die Verwendung in allen Modellen zu schreiben.
address.php
Diese Datei (unter /app/views/helpers/address.php) demonstriert, wie ein benutzerdefinierter Helfer für Ihr Projekt erstellt wird. Sie können mehr über Helfer hier lesen.
Drittanbieter-Bibliotheken
Wir verwenden die Drittanbieter-Bibliothek SwiftMailer zum Versenden von E-Mails anstelle der integrierten EmailComponent, um zu demonstrieren, wie CakePHP mit Drittanbieter-Bibliotheken funktioniert. SwiftMailerComponent (unter /app/controllers/components/swift_mailer.php) wird für den Zugriff auf die SwiftMailer-Bibliothek aus unserem CakePHP-Projekt verwendet. Sie können mehr über Komponenten hier lesen.
Zusätzliche Struktur
Und schließlich ein paar Worte zur Code-Struktur. CakePHP verfügt über Controller-, Model- und View-Klassen, aber auch über zusätzliche Klassen und Objekte, die die Entwicklung in MVC etwas schneller und angenehmer machen. Komponenten, Verhaltensweisen und Helfer sind Klassen, die Erweiterbarkeit und Wiederverwendbarkeit bieten, um den MVC-Basisklassen in Ihren Anwendungen schnell Funktionalität hinzuzufügen. Im Moment bleiben wir auf einer höheren Ebene, suchen Sie also nach Details, wie Sie diese Werkzeuge später verwenden können. Sie können mehr über die Klassen hier und mehr über die CakePHP-Konventionen hier erfahren.
Zugriff auf den Admin-Bereich
- Registrieren Sie mindestens einen Benutzer (sich selbst).
- Finden Sie in Ihrer Datenbank Ihren Eintrag in der Tabelle 'users'.
- Ändern Sie den Wert des Feldes 'role' für Ihren Benutzer von 'user' in 'admin'.
- Melden Sie sich an, und Sie sehen nun den Link 'backend' in der Navigationsleiste.
Vorwärts!
Nun sind Sie bereit, unser Tutorial-Projekt zu untersuchen! Wenn Sie Ihre Entwicklungdomain im Browser besuchen, sollte die App erscheinen. Sie können sich für ein Konto registrieren, es aktivieren und dann Events und Orte erstellen/aktualisieren/löschen sowie sie in den beiden verschiedenen Ansichten anzeigen.

Schreibfehler?
Wenn Sie eine Fehlermeldung erhalten, dass Cache-Dateien nicht beschreibbar sind, stellen Sie sicher, dass der Ordner /app/tmp beschreibbar ist, und wenden Sie dann diese Berechtigungen auf alle Unterordner an.

Cool! Ich freue mich auf zukünftige Beiträge. Ich interessierte mich für PHP-Frameworks, aber (und es tut mir leid, das so früh in den Kommentaren anzusprechen) im Vergleich zu Rails scheinen alle eine Menge Code zu erfordern, um einfache Dinge zu tun.
Dennoch hat mein Unternehmen hauptsächlich PHP-Programmierer und wir verwenden derzeit kein Framework. Also wird diese Serie mir einen großartigen Einblick in Cake geben!
Wahrscheinlich, weil es OO-basiert ist, was automatisch mehr Code erfordert (natürlich scheint es viel besser für die Wiederverwendung von Modulen und so zu sein).
Es erfordert nur mehr Code, wenn Sie diesen Code einmal verwenden. Wenn Sie ihn mehrmals verwenden (oder wenn es mehrere verschiedene Prozesse gibt, die diesen Code-Chunk möglicherweise einschließen oder nicht), spart er viel Arbeit.
Welche Einschränkungen gibt es Ihrer Erfahrung nach bei CakePHP? Haben Sie auch andere PHP-Frameworks verwendet? Ich nehme an, Ihr Favorit ist Cake, sonst würden Sie nicht darüber schreiben :)
Ich denke, es ist generell eine schlechte Idee, dies Designern/Grafikern beizubringen.
Die Begründung ist zweifach.
Erstens sind die Leute normalerweise in die eine oder andere Richtung verdrahtet. Das heißt, sie sind großartig in Grafikdesign und finden richtige Programmierung/Coding (über CSS, HTML und vielleicht Javascript hinaus) verwirrend, oder sie sind großartig in der Programmierung und können nichts Schönes über CSS hinaus gestalten.
Zweitens ist das Lehren anhand eines Frameworks eine schreckliche Idee.
Warum? Weil Sie ein Framework lehren, nicht die Sprache. Indem Sie das Framework lernen, vereinfachen Sie die Dinge, was bedeutet, dass der Lernende, wenn er auf ein Problem stößt, keinen Code schreiben kann, um es zu beheben, nicht vollständig verstehen wird, was er tut, und von diesem Framework abhängig sein wird. Obwohl er ein anderes Framework lernen könnte, würde er bei Null anfangen und das Erlernen von PHP richtig wäre nach dem Erlernen dieses Frameworks eine viel größere Herausforderung, als wenn er einfach PHP von Anfang an gelernt hätte.
Erstens nehmen Sie an, dass niemand hier PHP kennt und dass wir alle Designer sind. Zweitens sind die Leute definitiv nicht in die eine oder andere Richtung verdrahtet. Nehmen Sie zum Beispiel Chris. Er beherrscht HTML, CSS fast perfekt und hat einen Hintergrund im Printdesign, während er gleichzeitig über mehr als funktionale Kenntnisse in PHP, Javascript und insbesondere jQuery verfügt. Ich denke, dieses Repertoire beschreibt ziemlich viele Leute, die diese Seite besuchen. Leute mögen CakePHP aus dem gleichen Grund, warum sie WordPress oder jQuery lieben. Sie wollen nicht jedes Mal das Rad neu erfinden, wenn etwas erledigt werden muss. Außerdem ist es absolut nichts falsch daran, sein Wissen zu erweitern, unabhängig davon, was man hauptsächlich tut.
Tatsächlich sind viele Leute in die eine oder andere Richtung verdrahtet. Die Tatsache, dass ich das bin, bedeutet, dass es andere gibt, die es wahrscheinlich auch sind.
Ich kann Code schreiben, aber über CSS hinaus kann ich fast nichts tun, wenn es darum geht, Inhalte präsentabel zu machen. Sogar Buttons und Layouts sind für mich ein Problem. Ich bin sicher, ich bin nicht der Einzige.
Ich gehe davon aus, dass die meisten Leute hier hauptsächlich Designer sind, da es sich um eine Design-Community handelt, nicht um eine Entwickler-Community, und die überwiegende Mehrheit der Tutorials sich auf CSS, Layouts und andere grafische Dinge konzentriert.
Chris beherrscht offensichtlich HTML und CSS, aber funktionale Kenntnisse in Javascript und PHP sind nicht auf dem gleichen Niveau wie seine Kenntnisse in HTML, CSS und Print-Layouts. jQuery ist, wie Cake, eine Möglichkeit, Dinge zu vereinfachen, zählt also in meinen Augen nicht.
Es ist natürlich nichts falsch daran, neue Dinge zu lernen. Wenn niemand jemals lernen würde, wäre niemand hier.
Das gesagt, glaube ich, dass, wenn man PHP lernen will, es der richtige Weg ist, es richtig zu lernen (im Gegensatz zum Erlernen und Abhängigsein von einem Framework). Ein Framework später aufzugreifen ermöglicht es, Dinge zu tun, ohne frühere Arbeit zu wiederholen (obwohl ich es bevorzuge, Code-Schnipsel in Dateien zu speichern und einzufügen, anstatt sich auf ein Drittanbieter-Framework zu verlassen), aber es richtig von Anfang an zu lernen würde bedeuten, dass man mehr versteht, was vor sich geht, und tatsächlich Dinge für sich selbst schaffen kann.
Ich glaube eigentlich, dass Sie sich da irren. Vielleicht sind einige Leute eher in die eine oder andere Richtung verdrahtet. Aber sehen Sie sich Chris an. Er ist ein großartiger Designer und Programmierer. Wenn ich Chris nicht gekannt hätte, der diese Seite entworfen hat (und seine früheren Entwürfe nicht gesehen hätte), hätte ich Chris als CS-Absolventen (Computer Science) eingeschätzt.
Zweitens halte ich Frameworks für großartig. Während Sie Recht haben, vereinfachen sie die Dinge ziemlich. Aber wenn ich jetzt reingehen und reines Javascript lernen und etwas ausblenden müsste, wenn es angeklickt wird, hätte ich es wahrscheinlich nie ohne jQuery geschafft.
Frameworks sind heutzutage der Weg. Wenn Sie sich nicht an Frameworks anpassen können, werden Sie überholt.
Und schließlich, wenn Sie auf ein Problem stoßen, weil Ihnen das vollständige Wissen durch die Verwendung eines vereinfachten Frameworks fehlt, gibt es ** eine Menge ** Ressourcen, die Ihnen helfen können. Ich persönlich nutze StackOverflow.com für jede Programmhilfe und jeden Rat. Ich bekomme normalerweise Antworten innerhalb von Minuten, nachdem meine Fragen gestellt wurden.
Ich stimme Ihnen bis zu einem gewissen Grad zu...
Ich stimme zu, dass es viel klüger ist, zuerst PHP als Sprache zu lernen und sich dann in die Frameworks zu stürzen, wenn Sie sich beim Schreiben Ihres eigenen Codes wohl fühlen. Ich stimme jedoch nicht zu, dass die Leute in Bezug auf PHP-Programmierung und Design in die eine oder andere Richtung verdrahtet sind. Ich kenne viele fantastische, talentierte Designer, die Meister-Programmierer sind, und umgekehrt.
Danke für das Tutorial!
Ich bin ein PHP-Typ, hauptsächlich weil ich die Einfachheit davon mag und WordPress viel in meiner Entwicklung verwende. Aber ich denke, das ist eine großartige Ressource, da viele Tutorials zu Frameworks wie CakePHP oder PHPbb keinen solchen tiefgehenden Arbeitsablauf bieten.
Ich bin aber auch ein Hardcore-Grafik-/Design-Typ, und wenn man die Entwicklung von Webanwendungen für den durchschnittlichen Freelancer vereinfacht, der sich keinen Programmierer leisten kann oder die Zeit, sich in die Feinheiten einer Sprache einzuarbeiten, dann ist das eine wertvolle Ressource.
Man kann immer zurückgehen und mehr Zeit investieren, um später mehr über PHP oder Ruby zu lernen.
Guter Beitrag :)
Ich habe darüber nachgedacht, ein PHP-Framework wie Cake oder CodeIgniter zu verwenden, seit ich angefangen habe, mein eigenes CMS für ein soziales Netzwerk zu entwickeln. Ich wollte Typo3 oder andere CMS nicht verwenden, da ich nicht die Freiheit hätte, die Dinge zu ändern (zumindest nicht mit vielen Änderungen im Hauptcode oder durch Erstellen von Plugins).
Ich war nur neugierig, ob CakePHP fähig ist, ein Backend für soziale Netzwerke zu sein, oder ob es zu viel Zeit kosten würde, CakePHP so gut zu lernen, dass man es nutzen kann (obwohl, wenn es bereits CRUD und Validierung und all diesen Kram hat, ich denke, es wäre viel einfacher, das als Basis zu verwenden, als – wie Sie erwähnten – immer wieder das Rad neu zu erfinden).
@Chris W. Sie suchen wahrscheinlich etwas in dieser Richtung. http://bit.ly/11GlMP Dort gibt es viele gute Dinge, aber es gibt auch einen Artikel mit dem Titel „Creating a community in five minutes with CakePHP“. Es ist kein vollwertiges Backend mit vielen raffinierten Funktionen, aber es ist definitiv ein Anfang.
— Grüße
Danke, Mann, ich schaue mir das an :)
Man kann sich nicht beschweren, wenn jemand sich die Mühe macht, verschiedene Arten von PHP/Javascript-Frameworks zu erklären, besonders wenn man jemand wie ich ist, der oft "rückwärts lernt". Ich weiß bei weitem nicht so viel, wie ich gerne über echtes Hand-Coding von PHP oder Javascript selbst wissen würde. Ich habe Teile von Büchern gelesen, die PHP und Javascript lehren, aber es fällt mir schwer, bei ihnen zu bleiben. Durch das Verfolgen von Chris' WordPress-Screencasts habe ich angefangen zu verstehen, warum bestimmte Teile von PHP dies und jenes tun. Das Gleiche gilt für das Zerlegen einiger seiner kostenlosen Angebote, die jQuery benötigen. Ich habe Javascript besser verstanden, als Ergebnis des Herumspielens mit jQuery. Ich denke also, dass Beiträge wie dieser über CakePHP für manche Leute absolut wertvoll sind. Ich weiß seit anderthalb Jahren nur, wie man CSS/XHTML schreibt, und meine Fähigkeiten sind bestenfalls mittelmäßig, aber hey – jeder hat seine Anfangspunkte. Chris ist der Web-Typ, zu dem ich aufschaue, wenn es darum geht, Dinge zu verstehen, die per Design extrem kompliziert sind.
Eines der besten Dinge, die Frameworks für mich getan haben, ist, mir "funktionierende Beispiele" zum Zerlegen zu geben. Ich habe OOP von Cake, Flourish und ähnlichem gelernt; ich habe endlich MVC verstanden, indem ich den Code von der Indexseite von concrete5 bis zu den Controllern und Views verfolgt habe.
Hallo Chris,
Zuerst möchte ich Ihnen zu dem neuen Design und der besseren Benutzererfahrung gratulieren.
Für mich ist CakePHP das einzige PHP-Framework, es ist das Beste. Warum? Es ist schnell, einfach zu bedienen, kommt mit der besten Dokumentation und ist natürlich #1 unter den Programmierern. Wenn Sie Hilfe benötigen, können Sie Google durchsuchen oder Ihre Zweifel auf Stackoverflow.com beantworten lassen.
Mit freundlichen Grüßen,
Adriano
Ich benutze Cake seit mehr als einem Jahr, ich mag Cake, es ist einfach zu bedienen.
Ich habe Cake nur einmal benutzt, es war schwierig für mich..
Aber dieser Artikel zeigt mir, wie einfach es ist..
Warte auf zukünftige Beiträge in CAKE
Vielen Dank
Schön. Ich habe eine ähnliche Serie auf meinem Blog gestartet http://www.codeforest.net .
Ich werde das sicher verfolgen
Ich mag diesen Beitrag wirklich nicht, er ist viel zu kompliziert und unbeschrieben für jeden, der mit CakePHP nicht vertraut ist, schade Chris, vielleicht machen Sie die Beiträge lieber selbst :) Keine weiteren Gastbeiträge mehr...
Wie hilft Ihnen das beim Einstieg in Cake? Alles, was es tut, ist Ihnen zu sagen, wie Sie ein SVN-Repo mit einem vorgefertigten Projekt herunterladen. Schlechter Beitrag.
PS: CodeIgniter ist Cake bei weitem überlegen.
Dies scheint der erste Teil einer Serie zu sein. Obwohl es wegen fehlendem zusammenfassenden Absatz, der diese Information erklärt, nicht zu 100 % klar ist. ;)
Ich habe CodeIgniter ausprobiert, und obwohl es ein scheinbar gutes Projekt ist, fühle ich mich nicht wohl dabei, es in einer Produktionsumgebung zu verwenden.
Wenn ich nach Hause komme, werde ich an diesem Cake-Tutorial arbeiten. Danke für den Gastbeitrag!
Ich habe mir mehrere PHP-Frameworks angesehen und ausprobiert und mich für Codeigniter entschieden, einfach weil es das leichteste und am einfachsten zu handhabende ist UND die weitaus bessere Dokumentation aller hat. Ich habe es nicht bereut :D
Hallo,
Vielen Dank für den Beitrag. Freue mich auf zukünftige Beiträge zu Cakephp.
Persönlich, da ich vom technischen/programmierseitigen Hintergrund komme und versuche, auch die grafischen Dinge zu lernen, finde ich die technischeren Artikel immer noch sehr hilfreich. Leute aus allen Bereichen kommen auf Chris' Seite. Ein Artikel ist für die eine Gruppe vielleicht nicht so nützlich wie für die andere Gruppe(n). Er kann uns nicht mit allen Artikeln zufriedenstellen. Er führt Umfragen durch, um herauszufinden, was wir lernen wollen, und ich glaube, er versucht, auf das einzugehen, was die Mehrheit lernen möchte. Ich benutze gerne die Shopping-Cart-Methode, wenn ich auswähle, mit welchen Artikeln ich mich eingehender beschäftigen möchte. Wenn ich in den Laden gehe und die Gänge entlang gehe, kaufe ich nicht alles aus den Regalen. Ich weiß, was ich brauche, und wähle die Artikel aus, die ich brauche oder will. Das Gleiche gilt hier: Wenn ein Artikel Sie nicht anspricht, spricht er wahrscheinlich andere an, da Chris sein Publikum befragt, was es lernen möchte.
Ich stimme zu, dass es auf lange Sicht wahrscheinlich am besten ist, die Kernsprachen zu lernen, aber es gibt keinen Grund, die Codierungszeit zu verkürzen, indem man auch Frameworks nutzt. Wenn man sich viele Stellenanforderungen ansieht, wird oft auch Erfahrung mit Frameworks sowie mit Kerncodierung gesucht. Daher ist es offensichtlich sehr vorteilhaft, beides zu kennen. Sobald man die reine Codierungsseite beherrscht, *ja, sicher*, gibt es keinen Grund, warum man nicht auch Frameworks einsetzen kann, um Codierungszeit zu sparen. Vielleicht baut man seine eigenen für die Wiederverwendung für zukünftige Projekte, damit man nicht bei jedem neuen Projekt das Rad neu erfinden muss. Denken Sie daran, Zeit ist Geld, und wenn Frameworks es uns ermöglichen, Projekte schneller abzuschließen, bedeutet das nur, dass wir mehr Projekte abschließen und mehr Geld verdienen können :)
Also, unterm Strich: Wenn Ihnen ein Artikel nicht gefällt, verschwenden Sie keine Zeit und warten Sie auf Artikel, die mehr mit dem zu tun haben, was Sie lernen müssen oder wollen.
~Jim Zak~
Entschuldigung, zweiter Absatz, erster Satz hätte lauten sollen
Ich stimme zu, dass es auf lange Sicht wahrscheinlich am besten ist, die Kernsprachen zu lernen, aber es gibt keinen Grund, die Codierungszeit **NICHT** zu verkürzen, indem man auch Frameworks nutzt.
~Jim Zak~
Wahr, solange man versteht, was im Framework vor sich geht. Wenn es für Sie nur eine „magische Kiste“ ist, dann sollten Sie es wahrscheinlich nicht verwenden. Ihre Arbeit wird wahrscheinlich ineffizient, fehlerhaft und sogar unsicher sein. Auf jeden Fall werden Sie nicht so viel davon haben, wie Sie könnten.
Alter, diese Seite mit dem „Underground Traffic Blueprint“ ist echt mies. Versuchen, die alten Zeiten zurückzubringen, wo man auf einer Landingpage landet, die alles verspricht, nichts liefert und einen nicht gehen lässt? Scheiße.
An alle anderen: Spart euch das, besucht sie nicht.
Ich bin ein PHP-Neuling – ich habe es nur zum Senden von Formularen, Einbinden von Dateien und zum Zugriff auf eine einfache Datenbank zum Erstellen einer Online-Liste verwendet. Ich suche etwas, das mir so unkompliziert hilft wie jQuery für JavaScript.
Aus diesem Beitrag heraus sieht das Erlernen von CakePHP viel komplizierter aus als das Erlernen von reinem PHP. Wenn das nicht so ist, haben Sie mir auf jeden Fall den falschen Eindruck vermittelt!
Viele Leute in der Webdesign-/Entwicklergemeinschaft tragen viele Hüte, einfach weil es zum Job gehört, JavaScript/PHP sind leichte und dynamische Sprachen. Das Schreiben und Kompilieren von tatsächlichem Java/C++-Code, wie es ein Desktop-Entwickler tun würde, ist wahrscheinlich besser für Informatikabsolventen geeignet.
Ich glaube nicht, dass es etwas Falsches daran gibt, wenn jemand, der hauptsächlich designt, diese Web-Sprachen lernt, denn wenn er es nicht tut, muss er jemanden dafür bezahlen und sich auf ihn verlassen. Wie jemand anderes sagte: „Wenn man etwas richtig machen will, macht man es selbst.“ ;)
Das Web hat ein ganzes Ökosystem, das auf Client- und Serverseitigen Technologien basiert. Die Nutzung dieser Fähigkeiten macht Sie einfach wertvoller.
Ich habe CakePHP schon eine Weile gelernt, aber es will einfach nicht in meinen Kopf laden, aber nach der Überprüfung Ihres Beispiels hat es meinen Geist erleichtert, die Theorie zu verstehen.
Ich habe gerade selbst mit ZendFramework begonnen, weil ich nicht so viele Tutorials und Beiträge über CakePHP finden konnte. Vielleicht probiere ich es auch noch aus, bevor ich mich für das eine oder andere entscheide.
Wie üblich ein guter Artikel, Chris.
Sieht sehr vielversprechend aus. Eigentlich entwickle ich meistens für Ruby on Rails. Aber CakePHP sieht für ein breiteres Publikum besser aus.
Bis zu einem gewissen Grad kann ich Khalid zustimmen, dass Frameworks Sie daran hindern, die Hauptsprache tatsächlich zu lernen, aber ich denke, Frameworks sind ziemlich notwendig und sehr wichtig, aber es sollte Anstrengung unternommen werden, um zumindest die grundlegende Funktion und Kenntnisse der Sprache zu kennen. Manchmal danke ich Gott für clientseitige Frameworks wie Jquery, es spart 80 % der Zeit beim Tippen von entmutigendem Javascript… keine Notwendigkeit, das Rad neu zu erfinden.
Ich bin etwas verwirrt darüber, was ich aus diesem Artikel mitnehmen soll. Die Kommentare helfen auch nicht weiter, da die meisten die üblichen Framework-Gespräche führen (ich benutze dieses, oder meins ist besser). Ich nehme an, niemand hat den Artikel wirklich gelesen oder die Anwendung ausprobiert, die übrigens nicht funktioniert. Das lässt mich vermuten, dass dies Teil einer Reihe ist…
Also, kann jemand klarstellen, ob dies
1. Ein Tutorial zum Erstellen eines Event-Managers mit Cake. Einige Dateien ansehen, einige Konfigurationsdateien bearbeiten, SQL hochladen. Nichts Bahnbrechendes oder etwas Neues beibringendes… Definitiv zeigt es mir nicht CakePHP und wie man damit arbeitet….
2. Ist es eine Einführung in Cake, indem eine bereits erstellte Anwendung vorgestellt wird. Der Artikel geht nicht wirklich auf den Code selbst oder die eigentliche Anwendung ein.
3. Eine Reihe von größeren Tutorials, und der Code wird fertiggestellt und später ausführlicher behandelt…
Ich bin verwirrt….
Sie sollten sich den Code ansehen ;) jede Zeile ist kommentiert ;)
Ich möchte feststellen, dass dies ein schlechter Artikel zur Einführung in CakePHP und zur Arbeit damit ist. Ich verwende „Web App From Scratch“ als Vergleichsbasis für diese Seite in Bezug auf Tutorials/How-tos, daher erwarte ich, dass dieser Artikel ähnlich oder auf dem gleichen Niveau ist.
Darf ich vorschlagen, dass Sie nächstes Mal die Prozesse festhalten, die Sie zur Erstellung dieser Anwendung mit CakePHP verwendet haben, dann die internen Codedateien und deren Speicherorte überprüfen (wo ist der von Ihnen erwähnte Code??). Zusätzlich notieren Sie die korrekte Einrichtung von Cake PHP nach dem SVN-Prozess, da ich das gleiche Problem wie Daniel Langenakker unten hatte.
Ich habe getan, was der Artikel sagt, aber wenn ich versuche, einen Benutzer zu registrieren, wird gesagt, dass die Registrierungsseite nicht gefunden werden kann. Habe ich etwas falsch gemacht?
Es scheint, als ob etwas mit Ihrem Webserver nicht stimmt. Sie müssen einen virtuellen Host mit einem Namen wie „cake-event-manager.dev“ erstellen und den Dokumenten-Root auf…projektname/app/webroot setzen.
PS: Vergessen Sie nicht, die Zugriffsrechte für /app/tmp festzulegen.
Wenn Sie sicher sind, dass Ihr Server ordnungsgemäß funktioniert, versuchen Sie, diese Artikel zu lesen
Anforderungen
Installation-Vorbereitung
Installation
Ich persönlich mag Kohana (ursprünglich basierend auf CodeIgniter) viel mehr als CakePHP. Es ist großartig :)
Möchten Sie uns mitteilen, warum?
Danke
Dieses Tutorial hat bei mir nicht funktioniert – ein Novum für CSS-Tuts. Die meisten anderen waren einfach in Ordnung.
Ich kann die Seite nicht laden. Die Konfiguration ist eingerichtet. Ich bin mir nicht sicher, ob sie mit Mamp oder so etwas verbunden ist.
Sie gibt mir 404er aus & Bilder werden im Stammverzeichnis nicht geladen.