Premiers pas avec cakephp
- Premier projet vide de base
- Création initiale et téléchargement (CakePHP 3.x)
- Présentation de base de CakePHP 2.x
- CakePHP a quelques dossiers principaux
- Maintenant, nous devrions passer à notre dossier d’application
- Installation ou configuration
- Conditions
- Structure du dossier CakePHP3
- Dans le dossier src
- Conditions
Sur cette page
- Premier projet vide de base
- Création initiale et téléchargement (CakePHP 3.x)
- Présentation de base de CakePHP 2.x
- CakePHP a quelques dossiers principaux
- Maintenant, nous devrions passer à notre dossier d’application
- Installation ou configuration
- Conditions
- Structure du dossier CakePHP3
- Dans le dossier src
- Conditions
Premier projet vide de base
Création initiale et téléchargement (CakePHP 3.x)
Le moyen le plus simple de créer un nouveau projet CakePHP est via Composer (si vous ne connaissez pas composer, regardez ici pour plus d’informations)
Installer Compositeur
Si vous avez besoin de l’installer et que vous êtes sur une machine Windows, suivez ce guide
Si vous êtes sous Linux/Unix/OSX, suivez ce guide
Créer le premier projet CakePHP
Ouvrez une fenêtre de console et accédez à votre installation de php (sous Windows avec l’installation xampp par défaut, c’est C:\xampp\php
)
Pour créer un projet vide, exécutez la commande suivante :
php composer.phar create-project --prefer-dist cakephp/app name_of_your_project
Cuisson/Modèle/Vue/Contrôleurs
La magie de CakePHP est la cuisson - une génération automatisée de code de contrôleur, de modèle et de vue avec des options CRUD de base.
Avant la cuisson, vous devez configurer votre connexion à la base de données. Pour ce faire, vous devez éditer le fichier config/app.php
dans votre projet.
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'my_app', //in basic xampp: root
'password' => 'sekret', //in basic xampp: ''
'database' => 'my_app', //name of the database you want to connect to your project
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
]
],
Si votre base de données est correctement connectée, vous entrez alors bin/cake bake
dans le dossier racine de votre projet dans une fenêtre de console.
Cela devrait afficher quelque chose comme ceci :
Welcome to CakePHP v3.1.6 Console
---------------------------------------------------------------
App : src
Path: /var/www/cakephp.dev/src/
PHP: 5.5.8
---------------------------------------------------------------
The following commands can be used to generate skeleton code for your application.
Available bake commands:
- all
- behavior
- cell
- component
- controller
- fixture
- form
- helper
- mailer
- migration
- migration_snapshot
- model
- plugin
- shell
- shell-helper
- template
- test
By using `cake bake [name]` you can invoke a specific bake task.
Pour des raisons de simplicité, nous allons tout cuire avec les paramètres par défaut. Pour ce faire, vous entrez
cake bake all
Cela affichera quelque chose dans ce sens :
Welcome to CakePHP v3.2.11 Console
---------------------------------------------------------------
App : src
Path: C:\xampp\htdocs\tipping\src\
PHP : 5.6.15
---------------------------------------------------------------
Bake All
---------------------------------------------------------------
Possible model names based on your database:
- users
- blogs
Run `cake bake all [name]` to generate skeleton files.
En exécutant cake bake all <modelNameYouWantToBake>
les fichiers de modèle, de table, de contrôleur, d’appareil et de vue sont créés.
Exécutez ceci pour chaque nom de modèle possible et vous avez un projet fonctionnel avec des options CRUD de base.
Vous pouvez maintenant ouvrir votre navigateur et voir à quoi il ressemble et commencer à étendre le projet selon votre propre logique
Présentation de base de CakePHP 2.x
Parlera de la structure des répertoires de CakePHP, de la signification de chaque dossier.
CakePHP a quelques dossiers principaux
- app - Il contient le code source de notre application, tout notre code se trouve sous ce répertoire.
- lib - Ceci est la bibliothèque principale de cakephp, elle contient tout le code de la bibliothèque de base de cakephp. L’édition de code à l’intérieur de ce répertoire n’est pas suggérée car cela peut provoquer des erreurs lors de la mise à jour de la bibliothèque cakephp.
- plugins - Ceci contient le code des plugins cakephp qui sera utilisé pour notre application.
- vendeurs - Ceci contient du code externe, Ce code n’utilisera pas la bibliothèque cakephp.
- index.php - Ceci est le fichier d’index.
Nous pouvons avoir plusieurs applications hébergées dans un même projet. c’est-à-dire qu’ils peuvent utiliser les mêmes dossiers lib, plug-in et fournisseurs.
Pour modifier le code lib, la meilleure pratique consiste à les étendre dans notre dossier d’application et à effectuer les modifications.
Le dossier des plugins et des éditeurs est partagé par toutes les applications hébergées dans le même répertoire.
index.php est le fichier appelé en premier.
[![entrez la description de l’image ici][1]][1]
Maintenant, nous devrions passer à notre dossier d’application
[1] : http://i.stack.imgur.com/OXjZb.png
Installation ou configuration
Conditions
Le guide d’installation suivant est pour cakephp 2.8 et supérieur. Toutes les versions de cakephp inférieures à 2.8 ne sont pas compatibles avec php 7
Serveur HTTP. Par exemple : Apache. Avoir mod_rewrite est préférable, mais en aucun cas requis.
- PHP 5.5.9 ou supérieur (y compris PHP 7).
- extension PHP mbstring
- extension PHP internationale
Attention ! Dans XAMPP et WAMP, l’extension mbstring fonctionne par défaut. Dans XAMPP, l’extension intl est incluse mais vous devez décommenter extension=php_intl.dll dans php.ini et redémarrer le serveur via le panneau de configuration XAMPP. Dans WAMP, l’extension intl est “activée” par défaut mais ne fonctionne pas. Pour que cela fonctionne, vous devez aller dans le dossier php (par défaut) C:\wamp\bin\php\php{version}, copier tous les fichiers qui ressemblent à icu*.dll et les coller dans le répertoire apache bin C : \wamp\bin\apache\apache{version}\bin. Redémarrez ensuite tous les services et tout devrait bien se passer.
Bien qu’un moteur de base de données ne soit pas nécessaire, nous imaginons que la plupart des applications en utiliseront un. CakePHP prend en charge une variété de moteurs de stockage de base de données :
- MySQL (5.1.10 ou supérieur)
- PostgreSQL
- Microsoft SQL Server (2008 ou supérieur)
- SQLite 3
Structure du dossier CakePHP3
Après avoir téléchargé, voici les fichiers et dossiers que vous devriez voir :
- Le dossier bin contient les exécutables de la console Cake.
- Le dossier config contient les fichiers de configuration utilisés par CakePHP. Les détails de connexion à la base de données, l’amorçage, les fichiers de configuration de base et plus encore doivent être stockés ici.
- Le dossier plugins est l’endroit où les plugins utilisés par votre application sont stockés.
- Le dossier logs contient normalement vos fichiers journaux, selon votre configuration de journal.
- Le dossier src sera l’endroit où seront placés les fichiers de votre application.
- Le dossier de tests sera l’endroit où vous mettez les cas de test pour votre application.
- Le dossier tmp est l’endroit où CakePHP stocke les données temporaires. Les données réelles qu’il stocke dépendent de la façon dont vous avez configuré CakePHP, mais ce dossier est généralement utilisé pour stocker des descriptions de modèles et parfois des informations de session.
- Le dossier du fournisseur est l’endroit où CakePHP et les autres dépendances de l’application seront installés. Engagez-vous personnellement à ne pas modifier les fichiers de ce dossier.
- Le répertoire webroot est la racine publique des documents de votre application. Il contient tous les fichiers que vous souhaitez rendre accessibles au public.
Assurez-vous que les dossiers tmp et logs existent et sont inscriptible, sinon les performances de votre application seront sévèrement impacté. En mode débogage, CakePHP vous avertira, si ce n’est pas le cas l’affaire.
Dans le dossier src
Le dossier src de CakePHP est l’endroit où vous ferez la plupart du développement de votre application.
Le dossier Console contient les commandes et les tâches de la console pour votre application. Pour plus d’informations, consultez Shells, tâches et outils de la console.
Le dossier Controller contient les contrôleurs de votre application et leurs composants.
Le dossier Locale stocke les fichiers de chaîne pour l’internationalisation.
Le dossier Model contient les tables, les entités et les comportements de votre application.
Affichage : les classes de présentation sont placées ici : cellules, assistants et fichiers modèles.
Modèle : les fichiers de présentation sont placés ici : éléments, pages d’erreur, mises en page et fichiers de modèle de vue.
Conditions
1-HTTP Server. For example: Apache. Having mod_rewrite is preferred, but by no means required.
2-PHP 5.5.9 or greater (including PHP 7)
3-mbstring PHP extens ion
4-intl PHP extension
Je fais généralement une installation apache et mysql sur une linuxbox. Je peux aussi utiliser Windows, mais je ne le recommande pas ;) Donc, je fais généralement une nouvelle entrée dans le fichier /etc/hosts pour rendre un nom de site disponible pour cakephp.
127.0.0.1 localhost caketest.local
prochaine étape pour copier tous les fichiers cakephp dans un sous-répertoire à l’intérieur de /home/myusername/public_html/caketest
app
cake
index.php
plugins
README
vendors
.htaccess
puis j’ai configuré le site pour apache (pas nécessaire),
<Hôte virtuel *:80>
DocumentRoot “/home/myusername/public_html/caketest”
ServerName caketest.local
# This should be omitted in the production environment
SetEnv APPLICATION_ENV development
<Directory "/home/myusername/public_html/caketest">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
redémarre apache. vous devez également modifier les fichiers .htaccess et placer une directive RewriteBase avec le chemin d’accès au répertoire réel, par exemple.
RewriteBase /~myusername/caketest
créez une base de données, définissez la connexion db dans les fichiers de configuration de gâteau et c’est tout. vous pouvez pointer votre navigateur vers http://caketest.local si vous ne voulez pas d’URL de site de test, vous pouvez ignorer les hôtes et la création d’apache vhost, mais l’URL à utiliser doit être http:/localhost/~myusername/caketest
une autre chose importante est d’activer le module userdir dans apache, et également de vérifier si l’utilisation de php est également activée dans les userdirs.