Premiers pas avec cakephp

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

  1. app - Il contient le code source de notre application, tout notre code se trouve sous ce répertoire.
  2. 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.
  3. plugins - Ceci contient le code des plugins cakephp qui sera utilisé pour notre application.
  4. vendeurs - Ceci contient du code externe, Ce code n’utilisera pas la bibliothèque cakephp.
  5. 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.