cakephp-3.0 Tutorial
Iniziare con cakephp-3.0
Ricerca…
Osservazioni
Questa sezione fornisce una panoramica di cosa sia CakePHP-3.0 e perché uno sviluppatore potrebbe volerlo utilizzare.
Dovrebbe anche menzionare qualsiasi argomento di grandi dimensioni all'interno di cakephp-3.0 e collegarsi agli argomenti correlati. Poiché la documentazione di cakephp-3.0 è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.
Installazione Cakephp 3.X
Requisiti:
- PHP 5.6.0 o versione successiva dell'estensione PHP mbstring (l'impostazione predefinita funziona in WAMP / XAMPP, in caso contrario abilitarlo)
- estensione PHP intl (disponibile in WAMP / XAMPP, devi abilitarlo
da php.ini) - CakePHP verrà eseguito su una varietà di server Web come nginx,
- LightHTTPD o Microsoft IIS.
Prima di iniziare dovresti assicurarti che la tua versione di PHP sia aggiornata:
php -v
Usa Composer per installare Cakephp 3 Framework,
Il Composer è ufficialmente un metodo supportato per l'installazione, quindi scarica compositore su, Composer (Windows / Linux / Mac)
Esegui questa operazione per installare cakephp,
php composer.phar create-project --prefer-dist cakephp/app my_app_name
Una volta che Composer ha terminato il download dello scheletro dell'applicazione e della libreria core CakePHP, è necessario installare un'applicazione CakePHP funzionante tramite Composer. Assicurati di mantenere i file composer.json e composer.lock con il resto del codice sorgente.
Oppure segui questo modo più semplice per installare cakephp
Segui i passaggi qui sotto,
- vai a questo repository Git
- Scarica la tortaDC / forno per una facile installazione
- Estrai il file zip all'interno di LOCALHOST
- Dare 777 autorizzazioni a quella cartella
- Esegui il file oven.php (disponibile all'interno della cartella)
- Si aprirà una pagina con molte opzioni, scegliere l'opzione secondo le proprie preferenze
- Clicca sull'immagine e siediti. Il tuo progetto verrà installato tra un paio di minuti
eseguire:
bin/cake server
Per impostazione predefinita, senza argomenti forniti, questo servirà la tua applicazione su http: // localhost: 8765 / .
spara al tuo browser, http://example.com/ o http: // localhost: 8765 / . A questo punto, ti verrà presentata la casa predefinita di CakePHP e un messaggio che ti informa sullo stato della tua connessione al database corrente e sei pronto per la tua prima applicazione.
Per ulteriori dettagli su Installazione e configurazione, seguire l'installazione di Cakephp 3.X.
Impostazione del progetto
All'inizio, dovresti creare un database con mysql , phpMyAdmin , HeidiSQL o un altro strumento per lavorare con il Database e consentire all'utente di crearne uno nuovo.
Dopo tale procedura, è necessario fornire l'accesso al database per il progetto.
Devi andare in /path/to/your/project/config/app.php , quindi cerca il default Datasources . In quell'array, è necessario cambiare localhost (su richiesta), user , password e database .
o sul browser e sulla pagina di aggiornamento. Il problema del DB dovrebbe sparire e mostrare il Green Tick sul lato sinistro.
Fatto! Il tuo primo progetto è stato creato!
Costruisci prima "Hello World!" applicazione con CakePHP 3.x (Introduzione Parte 1)
CakePHP 3.x ha la capacità di bake controllers , i models , le views e altri oggetti definiti dal framework.
Nota : se hai avuto esperienza con il framework di
Laravel, il componenteartisanè simile abake.
L'applicazione di bake si trova nella cartella bin ; i seguenti sono alcuni dei comandi disponibili:
-
bin/cake bake shell %shellName%- per cuocere ShellClass -
bin/cake bake controller %controllerName%- per cuocere Controller Class -
bin/cake bake model %modelName%- per cuocere Model + Entity Class -
bin/cake bake view %viewName%- to bake Visualizza modello -
bin/cake bake all %className%- per cuocere Controller, Modello + Entità, Visualizza per sviluppatore.
Nota : non sarà possibile
bake modelse non ci sono tabelle nel database
Nota : se si
bake allcomponenti, si ottengono iControllerscon azioniCRUDpredefinite.
Costruisci prima "Hello World!" applicazione con CakePHP 3.x (Migrazioni delle tabelle di database. Parte 2)
Puoi facilmente create tabelle per il tuo database o drop se vuoi. Se desideri farlo, dovresti imparare come scrivere le Migrations per il database desiderato.
I file di migrazione devono trovarsi nella cartella config/Migrations . I nomi dei file possono essere nei seguenti formati:
-
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");
}
}
Se si desidera eseguire la migrazione, è necessario eseguire il comando successivo:
bin/cake migrations migrate per creare table (-s).
Se si desidera eseguire il rollback:
bin/cake migrations rollback - ripristinerà l'ultima migrazione, dove esiste la funzione drop()
bin/cake migrations (-t|--target) all - ripristinerà tutte le migrazioni, dove esiste la funzione drop()
Costruisci prima "Hello World!" applicazione con CakePHP 3.x (Controller, Risposta, Vista. Parte 3)
Vuoi creare un controller? Ci sono 2 modi per crearlo:
- Manualmente (sarai costretto a creare manualmente il file Controller in
src/Controller) - Baked (Comando
bin/cake bake controller %controllerName%da CLI)
Se vuoi crearlo manualmente, vai alla cartella src/Controller e crea il file che segue il seguente modello:
([AZ]{1}[az]{1,})Controller.php
In quel controller, dovresti definire namspace , che verrà usato:
<?php
namespace App\Controller;
Quindi dovresti nominarlo come nome file, es. AdminiController:
use App\Controller\AppController;
class AdminController extends AppController{}
All'interno di questa classe, dovresti creare il tuo primo metodo, es. login :
public function login(){}
Se si digiterà nel browser: http://{{project-name}}/admin/login verrà generato un errore del modello mancante. Come risolvere questo problema?
È necessario creare sotto il file src/Template/Admin/ login.ctp .
Nota : * .ctp carattere jolly - è un file modello di torta, che viene utilizzato per passare / eseguire il rendering dei dati che si imposta tramite il controller.
In quel file digita semplicemente "Hello World!" dove vuoi, aggiorna la pagina con errore del modello e otterrai il tuo World , che ti saluta!
Nota : per impostazione predefinita,
src/Template/Layout/default.ctpviene visualizzato come layout, se non ne è stato definito uno
Installazione di CakePHP 3.4 su CentOS 7 con PHP 7 e SELinux abilitato
Questo è quello che ho fatto per installare CakePHP su un CentOS 7 appena installato
- Installato un CentOS-7-x86_64-Minimal-1611.iso in VirtualBox, due interfacce di rete: primo NAT, secondo solo host
- imposta ONBOOT = sì in / etc / sysconfig / network-scripts / ifcfg-enp0s3
- riavvio
- aggiornamento yum
- yum install net-tools (per ottenere ifconfig e netstat)
- yum installa 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-latest-7.noarch.rpm
- yum-config-manager --enable remi-php71
- yum installa php
- systemctl abilita httpd
- systemctl avvia httpd
- firewall-cmd --permanent --zone = public --add-service = http
- firewall-cmd --permanent --zone = public --add-service = https
- firewall-cmd --reload
- yum install httpd mariadb-server mariadb php phpmyadmin
- systemctl start mariadb
- systemctl abilita mariadb
- systemctl restart httpd
- Installa 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
- chop apache: -R MyApp /
- Crea database:
# 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
- Crea il file /etc/httpd/conf.d/my_app.conf con il contenuto:
<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
tocca /.autorelabel; riavvio
Sul mio host modifico / etc / hosts e inserisco la riga (192.168.56.101 è l'indirizzo IP host-only della mia VM)
192.168.56.101 cakephp.myapp.net
Naviga su http://cakephp.myapp.net/
ToDo: modifica il file di connessione al database.