cakephp-3.0 Tutoriel
Démarrer avec cakephp-3.0
Recherche…
Remarques
Cette section fournit une vue d'ensemble de ce qu'est cakephp-3.0 et pourquoi un développeur peut vouloir l'utiliser.
Il devrait également mentionner tous les grands sujets dans cakephp-3.0, et établir un lien avec les sujets connexes. La documentation de cakephp-3.0 étant nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.
Installation Cakephp 3.X
Exigences:
- PHP PHP 5.6.0 ou supérieur extension PHP (fonctionne par défaut dans WAMP / XAMPP, sinon activez-le)
- Intl extension PHP (Disponible dans WAMP / XAMPP, vous devez l'activer
de 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 le compositeur sur, Composer (Windows / Linux / Mac)
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 opérationnelle installée via Composer. Veillez à conserver les fichiers composer.json et composer.lock avec le reste de votre code source.
Ou suivez ce moyen le plus simple pour installer cakephp
Suivez les étapes ci-dessous,
- allez dans ce dépôt Git
- Téléchargez le gâteau / four pour une installation facile
- Extraire le fichier zip dans le LOCALHOST
- Donne l'autorisation 777 à ce dossier
- Exécutez le fichier oven.php (disponible dans le dossier)
- Une page s'ouvrira avec beaucoup d'options, choisissez l'option selon vos préférences
- Cliquez sur l'image et asseyez-vous. Votre projet sera installé dans quelques minutes
exécuter:
bin/cake server
Par défaut, sans aucun argument fourni, cela servira votre application sur http: // localhost: 8765 / .
lancez ceci sur votre navigateur, http://example.com/ ou http: // localhost: 8765 / . À ce stade, vous recevrez la page d'accueil par défaut de CakePHP et un message vous indiquant l'état de votre connexion de base de données actuelle et vous êtes prêt pour votre première application.
Pour plus de détails sur l'installation et la configuration, suivez Cakephp 3.X Installation
Mise en place du projet
Au début, vous devez créer une base de données avec mysql , phpMyAdmin , HeidiSQL ou d'autres instruments pour travailler avec Database et permettre à l'utilisateur d'en créer un nouveau.
Après cette procédure, vous devez fournir un 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 sur votre navigateur et actualiser la page. La question de la base de données devrait disparaître et afficher Green Tick à gauche.
Terminé! Votre premier projet a été mis en place!
Construis d'abord 'Hello World!' application avec CakePHP 3.x (Introduction. Partie 1)
CakePHP 3.x a la capacité de faire bake controllers , des models , des views et d'autres objets définis par le framework.
Remarque : Si vous avez déjà
LaravelframeworkLaravel, le composantartisanest similaire à celui de labake.
L'application de bake est située 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 Controller -
bin/cake bake model %modelName%- pour cuire la classe Model + Entity -
bin/cake bake view %viewName%- pour cuire le modèle de vue -
bin/cake bake all %className%- pour cuire Controller, Model + Entity, View for developer.
Note : Vous ne pourrez pas faire de
bake modelsi vous n'avez pas de tables dans votre base de données
Remarque : Si vous
bake allcomposants, vous obtiendrez desControllersavec des actionsCRUDprédéfinies.
Construis d'abord 'Hello World!' application avec CakePHP 3.x (migrations de tables de base de données. Partie 2)
Vous pouvez facilement create tables pour votre base de données ou les drop si vous le souhaitez. Si vous souhaitez le faire, vous devriez apprendre à écrire des Migrations pour la base de données souhaitée.
Les fichiers de migration doivent être situés 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
<?php
use Migrations\AbstractMigration;
use Cake\Log\Log;
/**
* Class AdministratorsTableMigration
*/
class AdministratorsTableMigration extends AbstractMigration
{
/**
* @var string
*/
private $_tableName;
/**
* @var string
*/
private $_tablePrefix;
public function init()
{
$this->_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 une table (-s).
Si vous voulez annuler:
bin/cake migrations rollback - annule la dernière migration, où la fonction drop() existe
bin/cake migrations (-t|--target) all - bin/cake migrations (-t|--target) all les migrations, où la fonction drop() existe
Construis d'abord 'Hello World!' application avec CakePHP 3.x (Contrôleurs, Réponse, Affichage. Partie 3)
Vous voulez créer un contrôleur? Il y a 2 façons de le créer:
- Manuellement (vous serez obligé de créer manuellement un fichier de contrôleur dans
src/Controller) - Baked (Exécution du
bin/cake bake controller %controllerName%depuis l'interface de ligne de commande)
Si vous voulez le créer manuellement, allez dans le dossier src/Controller et créez le fichier suivant:
([AZ]{1}[az]{1,})Controller.php
Dans ce contrôleur, vous devez définir namspace , qui sera utilisé:
<?php
namespace App\Controller;
Ensuite, vous devriez le nommer comme nom de fichier, ex. AdminiController:
use App\Controller\AppController;
class AdminController extends AppController{}
Dans cette classe, vous devriez créer votre première méthode, ex. login :
public function login(){}
Si vous tapez votre navigateur: http://{{project-name}}/admin/login , une erreur de modèle manquant apparaîtra. Comment résoudre ce problème?
Vous devez créer sous le fichier src/Template/Admin/ login.ctp .
Remarque : le caractère générique * .ctp est un fichier de gabarit 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, rafraîchir la page avec une erreur de modèle et vous obtiendrez votre World , qui vous salue!
Note : Par défaut,
src/Template/Layout/default.ctpest rendu en tant que présentation, si vous n'en avez pas défini
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 nouveau CentOS 7 minimal installé
- Installation d'un CentOS-7-x86_64-Minimal-1611.iso dans VirtualBox, deux interfaces réseau: premier NAT, deuxième hôte uniquement
- définir ONBOOT = yes dans / etc / sysconfig / network-scripts / ifcfg-enp0s3
- redémarrer
- mise à jour de miam
- yum install net-tools (pour obtenir ifconfig et netstat)
- yum installer wget
- yum install 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-last-7.noarch.rpm
- yum-config-manager --enable remi-php71
- yum installer php
- systemctl activer httpd
- systemctl start httpd
- firewall-cmd --permanent --zone = public --add-service = http
- firewall-cmd --permanent --zone = public --add-service = https
- firewall-cmd --reload
- yum installer httpd mariadb-server mariadb php phpmyadmin
- systemctl démarrer mariadb
- systemctl activer mariadb
- systemctl restart httpd
- yum installe 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 MyApp
- apache chown: -R MyApp /
- 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
</Directory>
</VirtualHost>
cd / var / www / html / secure_logging; chcon -Rv --type = httpd_user_content_rw_t tmp
touchez /.autorelabel; redémarrer
Sur mon hôte, je modifie / etc / hosts et j'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/
À faire: Modifier le fichier de connexion à la base de données.