Premiers pas avec cakephp-3.0

Créez d’abord “Hello World!” application avec CakePHP 3.x (Migrations de tables de base de données. Partie 2)

Vous pouvez facilement “créer” des tables pour votre base de données ou les “supprimer” si vous le souhaitez. Si vous souhaitez le faire, vous devez apprendre à écrire “Migrations” pour la base de données souhaitée.

Les fichiers de migration doivent se trouver dans le dossier config/Migrations. Les noms de fichiers peuvent être dans les formats suivants :

  • YYYYMMDDHHIISS_(Create|Alter|Delete)AdministratorsTable.php

  • (1-9){1,}_(Create|Alter|Delete)AdministratorsTable.php

    _tableName = '"Administrators"'; $this->_tablePrefix = 'administrators'; } public function up() { Log::info("Trying to create {$this->_tableName} table"); $administratorsTable = $this->table($this->_tablePrefix); if ($administratorsTable->exists()) { return Log::warning("Table {$this->_tableName} already exists"); } $administratorsTable ->addPrimaryKey('id') ->addColumn('username', 'char', [ 'length' => 25, 'null' => false ]) ->addColumn('password', 'char', [ 'length' => 255, 'null' => false ]) ->addColumn('email', 'char', [ 'length' => 50, 'null' => false ]) ->addColumn('first_name', 'char', [ 'length' => 50, 'null' => false ]) ->addColumn('last_name', 'char', [ 'length' => 50, 'null' => false ]) ->addColumn('avatar', 'char', [ 'length' => 255, 'default' => '/img/no-avatar.png' ]) ->addColumn('active', 'boolean', [ 'default' => 0 ]) ->addTimestamps() ->create(); return Log::notice("Table {$this->_tableName} has been created"); } public function down() { if ($this->table($this->_tablePrefix)->exists()) { $this->table($this->_tablePrefix)->drop(); return Log::info("Table {$this->_tableName} has been dropped"); } return Log::warning("Table {$this->_tableName} does not exists"); } }

Si vous souhaitez exécuter la migration, vous devez exécuter la commande suivante :

bin/cake migrations migrate pour créer des tables.

Si vous souhaitez revenir en arrière :

bin/cake migrations rollback - annulera la dernière migration, où la fonction drop() existe

bin/cake migrations (-t|--target) all - annulera toutes les migrations, où la fonction drop() existe

Installer Cakephp 3.X

Conditions:

  • PHP 5.6.0 ou une extension PHP mbstring supérieure (fonctionne par défaut dans WAMP/XAMPP, sinon activez-le)
  • extension PHP intl (Disponible dans WAMP/XAMPP, vous devez l’activer depuis php.ini)
  • CakePHP fonctionnera sur une variété de serveurs Web tels que nginx,
  • LightHTTPD ou Microsoft IIS.

Avant de commencer, vous devez vous assurer que votre version de PHP est à jour :

php -v

Utilisez Composer pour installer Cakephp 3 Framework,

Composer est une méthode officiellement prise en charge pour l’installation, alors téléchargez composer sur, [Composer (Windows/Linux/Mac)][1]

Exécutez ceci pour installer cakephp,

php composer.phar create-project --prefer-dist cakephp/app my_app_name

Une fois que Composer a fini de télécharger le squelette de l’application et la bibliothèque principale de CakePHP, vous devriez avoir une application CakePHP fonctionnelle installée via Composer. Assurez-vous de conserver les fichiers composer.json et composer.lock avec le reste de votre code source.

Ou suivez ce moyen le plus simple d’installer cakephp

Suivez les étapes ci-dessous,

  1. allez dans ce [référentiel Git][1]
  2. Téléchargez le cakeDC/oven pour une installation facile
  3. Extrayez le fichier zip à l’intérieur de LOCALHOST
  4. Donnez l’autorisation 777 à ce dossier
  5. Exécutez le fichier four.php (disponible dans le dossier)
  6. Une page s’ouvrira avec beaucoup d’options, choisissez l’option selon vos préférences
  7. Cliquez sur l’image et asseyez-vous. Votre projet sera installé en quelques minutes

[1] : https://github.com/CakeDC/oven

exécuter:

bin/cake server

Par défaut, sans aucun argument fourni, cela servira votre application à http://localhost:8765/.

lancez ceci sur votre navigateur, http://example.com/ ou http://localhost:8765/. À ce stade, vous serez présenté avec l’accueil par défaut de CakePHP, et un message qui vous indique l’état de votre connexion actuelle à la base de données et vous êtes prêt pour votre première application.

Pour plus de détails sur l’installation et la configuration, suivez [Installation de Cakephp 3.X][3]

[1] : https://getcomposer.org/download/ [2] : https://github.com/cakephp/cakephp/tags [3] : https://book.cakephp.org/3.0/en/installation.html

Configuration du projet

Au début, vous devez créer une base de données avec mysql, phpMyAdmin, HeidiSQL ou un autre instrument pour travailler avec la base de données et laisser l’utilisateur en créer une nouvelle.

Après cette procédure, vous devez fournir l’accès à la base de données pour le projet.

Vous devez aller dans le fichier /path/to/your/project/config/app.php, puis rechercher Datasources default. Dans ce tableau, vous devez modifier localhost (à la demande), user, password et database.

o à votre navigateur et actualiser la page. Le problème DB devrait disparaître et afficher “Green Tick” sur le côté gauche.

Terminé ! Votre premier projet est configuré !

Créez d’abord “Hello World!” application avec CakePHP 3.x (Introduction. Partie 1)

CakePHP 3.x a la capacité de bake controllers, models, views et d’autres objets définis par le framework.

Remarque : Si vous avez déjà utilisé le framework Laravel, le composant artisan est similaire à bake.

L’application bake se trouve dans le dossier bin ; voici quelques-unes des commandes disponibles :

  • bin/cake bake shell %shellName% - pour cuire ShellClass
  • bin/cake bake controller %controllerName% - pour cuire la classe de contrôleur
  • bin/cake bake model %modelName% - pour cuire le modèle + la classe d’entité
  • bin/cake bake view %viewName% - pour cuire le modèle de vue
  • bin/cake bake all %className% - pour cuire le contrôleur, le modèle + l’entité, la vue pour le développeur.

Remarque : Vous ne pourrez pas bake model si vous n’avez pas de tables dans votre base de données

Remarque : Si vous “faites cuire tous les composants”, vous obtiendrez des “contrôleurs” avec des actions “CRUD” prédéfinies.

Créez d’abord “Hello World!” application avec CakePHP 3.x (Controllers , Response, View. Part 3)

Vous voulez créer un contrôleur ? Il existe 2 façons de le créer :

  • Manuellement (vous serez obligé de créer manuellement le fichier Controller dans src/Controller)
  • Baked (exécution de la commande bin/cake bake controller %controllerName% à partir de la CLI)

Si vous voulez le créer manuellement, allez dans le dossier src/Controller et créez le fichier suivant le modèle suivant :

([A-Z]{1}[a-z]{1,})Contrôleur.php

Dans ce contrôleur, vous devez définir namspace, qui sera utilisé :

<?php
    namespace App\Controller;

Ensuite, vous devez le nommer comme nom de fichier, ex. AdminiController :

use App\Controller\AppController;

class AdminController extends AppController{}

À l’intérieur de cette classe, vous devez créer votre première méthode, ex. connexion :

public function login(){}

Si vous tapez dans votre navigateur : http://{{project-name}}/admin/login, une erreur de modèle manquant sera générée. Comment résoudre ce problème?

Vous devez créer sous le fichier src/Template/Admin/ login.ctp.

Remarque : *.ctp joker - est un fichier de modèle de gâteau, qui est utilisé pour transmettre/rendre les données que vous définissez via le contrôleur.

Dans ce fichier, tapez simplement “Hello World!” où vous voulez, actualisez la page avec une erreur de modèle et vous obtiendrez votre “Monde”, qui vous accueille !

Remarque : Par défaut, src/Template/Layout/default.ctp est rendu en tant que mise en page, si vous n’en avez pas défini une

Installer CakePHP 3.4 sur CentOS 7 avec PHP 7 et SELinux activés

C’est ce que j’ai fait pour installer CakePHP sur un CentOS 7 minimal fraîchement installé

  • Installé un CentOS-7-x86_64-Minimal-1611.iso dans VirtualBox, deux interfaces réseau : premier NAT, deuxième Host-Only

  • définissez ONBOOT=yes dans /etc/sysconfig/network-scripts/ifcfg-enp0s3

  • redémarrer

  • mise à jour miam

  • yum install net-tools (pour obtenir ifconfig et netstat)

  • miam installer wget

  • yum installer yum-utils

  • wget -q http://rpms.remirepo.net/enterprise/remi-release-7.rpm

  • wget -q https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

  • rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm

  • yum-config-manager –enable remi-php71

  • miam installer php

  • systemctl active httpd

  • systemctl démarrer httpd

  • firewall-cmd –permanent –zone=public –add-service=http

  • firewall-cmd –permanent –zone=public –add-service=https

  • pare-feu-cmd –reload

  • yum installer httpd mariadb-server mariadb php phpmyadmin

  • systemctl démarrer mariadb

  • systemctl active mariadb

  • systemctl redémarre httpd

  • miam installer php-mbstring php-intl

  • mysql_secure_installation -curl -s https://getcomposer.org/installer | php

  • cd /var/www/html/

  • php composer.phar create-project –prefer-dist cakephp/app MonApp

  • chown apache : -R MonApp/

  • Créer une base de données :

    mysql -u root -p

    Enter password:

    mysql> CREATE DATABASE mydb; mysql> GRANT ALL ON mydb.* to ‘myuser’@’localhost’ IDENTIFIED BY ‘password’; mysql> FLUSH PRIVILEGES; mysql> quit

  • Créez le fichier /etc/httpd/conf.d/my_app.conf avec le contenu :

    <VirtualHost *:80> ServerAdmin root@localhost ServerName cakephp.myapp.net DocumentRoot /var/www/html/MyApp <Directory /var/www/html/MyApp> Allowoverride All

  • cd /var/www/html/secure_logging ; chcon -Rv –type=httpd_user_content_rw_t tmp

  • touchez /.autorelabel ; redémarrer

  • Sur mon hôte, j’édite /etc/hosts et entre la ligne (192.168.56.101 est l’adresse IP de l’hôte uniquement de ma VM) 192.168.56.101 cakephp.myapp.net

  • Surfez sur http://cakephp.myapp.net/

  • ToDo : Modifier le fichier de connexion à la base de données.