cakephp-3.0 Tutorial
Empezando con cakephp-3.0
Buscar..
Observaciones
Esta sección proporciona una descripción general de qué es cakephp-3.0 y por qué un desarrollador puede querer usarlo.
También debe mencionar cualquier tema importante dentro de cakephp-3.0 y vincular a los temas relacionados. Dado que la Documentación para cakephp-3.0 es nueva, es posible que deba crear versiones iniciales de esos temas relacionados.
Instalación Cakephp 3.X
Requisitos:
- PHP 5.6.0 o mayor extensión de PHP mbstring (la predeterminada funciona en WAMP / XAMPP, si no, habilítelo)
- extensión PHP intl (disponible en WAMP / XAMPP, debe habilitarla
de php.ini) - CakePHP se ejecutará en una variedad de servidores web como nginx,
- LightHTTPD, o Microsoft IIS.
Antes de comenzar debes asegurarte de que tu versión de PHP esté actualizada:
php -v
Utilice Composer para instalar Cakephp 3 Framework,
Composer es un método oficialmente admitido para la instalación, por lo tanto descargue composer en, Composer (Windows / Linux / Mac)
Ejecuta esto para instalar cakephp,
php composer.phar create-project --prefer-dist cakephp/app my_app_name
Una vez que Composer termine de descargar el esqueleto de la aplicación y la biblioteca principal de CakePHP, deberías tener una aplicación CakePHP en funcionamiento instalada a través de Composer. Asegúrese de mantener los archivos composer.json y composer.lock con el resto de su código fuente.
O sigue esta forma fácil de instalar cakephp
Siga los siguientes pasos,
- ir a este repositorio Git
- Descarga el cakeDC / horno para una fácil instalación
- Extrae el archivo zip dentro de LOCALHOST
- Dar permiso 777 a esa carpeta
- Ejecutar archivo oven.php (disponible dentro de la carpeta)
- Se abrirá una página con muchas opciones, elija la opción según su preferencia
- Haz click en la imagen y siéntate. Su proyecto se instalará en un par de minutos.
ejecutar:
bin/cake server
De forma predeterminada, sin ningún argumento, esto servirá para su aplicación en http: // localhost: 8765 / .
dispare esto en su navegador, http://example.com/ o http: // localhost: 8765 / . En este punto, se le presentará la página de inicio predeterminada de CakePHP y un mensaje que le informa el estado de su conexión de base de datos actual y está listo para su primera aplicación.
Para obtener más detalles sobre la instalación y la configuración, consulte Instalación de Cakephp 3.X.
Configurando proyecto
Al principio, debe crear una base de datos con mysql , phpMyAdmin , HeidiSQL u otros instrumentos para trabajar con la base de datos y permitir que el usuario cree uno nuevo.
Después de ese procedimiento, debe proporcionar acceso a la base de datos para el proyecto.
/path/to/your/project/config/app.php ir al archivo /path/to/your/project/config/app.php , luego busque el default Datasources . En esa matriz, necesita cambiar localhost (a pedido), user , password y database .
o a su navegador y actualice la página. El problema de DB debería desaparecer y mostrar Green Tick en el lado izquierdo.
¡Hecho! Tu primer proyecto ha sido creado!
Construye primero '¡Hola mundo!' aplicación con CakePHP 3.x (Introducción. Parte 1)
CakePHP 3.x tiene la capacidad de bake controllers , models , views y otros objetos definidos por el marco.
Nota : Si ha tenido alguna experiencia con el marco
Laravel, el componenteartisanes similar abake.
La aplicación de bake se encuentra en la carpeta bin ; Los siguientes son algunos de los comandos disponibles:
-
bin/cake bake shell %shellName%- para hornear ShellClass -
bin/cake bake controller %controllerName%- para hornear Controller Class -
bin/cake bake model %modelName%- para hornear Model + Entity Class -
bin/cake bake view %viewName%- para hornear Ver plantilla -
bin/cake bake all %className%- para hornear Controlador, Modelo + Entidad, Ver para desarrollador.
Nota : no podrá
bake modelsi no tiene tablas en su base de datos
Nota : Si
bake allcomponentes, obtendráControllerscon accionesCRUDpredefinidas.
Construye primero '¡Hola mundo!' aplicación con CakePHP 3.x (Migraciones de tablas de base de datos. Parte 2)
Puede create fácilmente tablas para su base de datos o drop si lo desea. Si desea hacerlo, debe aprender cómo escribir Migrations para la base de datos deseada.
Los archivos de migración deben estar ubicados en la carpeta config/Migrations . Los nombres de los archivos pueden estar en los siguientes formatos:
-
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 desea ejecutar la migración, necesita ejecutar el siguiente comando:
bin/cake migrations migrate para crear tablas (-s).
Si desea revertir:
bin/cake migrations rollback : revertirá la última migración, donde existe la función drop()
bin/cake migrations (-t|--target) all - revertirá todas las migraciones, donde existe la función drop()
Construye primero '¡Hola mundo!' aplicación con CakePHP 3.x (Controladores, Respuesta, Vista. Parte 3)
¿Quieres crear un controlador? Hay 2 formas de crearlo:
- Manualmente (Se le obligará a crear manualmente el archivo del Controlador en
src/Controller) - Al horno (Comando
bin/cake bake controller %controllerName%desde CLI)
Si desea crearlo manualmente, vaya a la carpeta src/Controller y cree el archivo que sigue al siguiente patrón:
([AZ]{1}[az]{1,})Controller.php
En ese controlador, debe definir namspace , que será utilizado:
<?php
namespace App\Controller;
Entonces deberías nombrarlo como nombre de archivo, ej. AdminiController:
use App\Controller\AppController;
class AdminController extends AppController{}
Dentro de esta clase, debes crear Tu primer método, ej. login :
public function login(){}
Si escribe en su navegador: http://{{project-name}}/admin/login se producirá un error de plantilla faltante. ¿Cómo resolver este problema?
login.ctp archivo src/Template/Admin/ login.ctp .
Nota : * .ctp wildcard - es un archivo de plantilla de Cake, que se usa para pasar / renderizar datos que está configurando a través del controlador.
En ese archivo solo escribe '¡Hola Mundo!' donde quieras, actualiza la página con un error de plantilla y obtendrás Tu World , ¡eso te saluda!
Nota : De forma predeterminada,
src/Template/Layout/default.ctpse representa como diseño, si no define uno
Instalación de CakePHP 3.4 en CentOS 7 con PHP 7 y SELinux habilitados
Esto es lo que hice para instalar CakePHP en un CentOS 7 mínimo instalado recientemente.
- Se instaló un CentOS-7-x86_64-Minimal-1611.iso en VirtualBox, dos interfaces de red: primero NAT, segundo solo para host
- establezca ONBOOT = yes en / etc / sysconfig / network-scripts / ifcfg-enp0s3
- reiniciar
- yum actualización
- yum instala net-tools (para obtener ifconfig y netstat)
- yum instala wget
- yum instalar 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 - habilitar remi-php71
- yum instalar php
- systemctl habilitar httpd
- systemctl start httpd
- firewall-cmd --permanent --zone = public --add-service = http
- firewall-cmd --permanent --zone = public --add-service = https
- firewall-cmd --cargar
- yum install httpd mariadb-server mariadb php phpmyadmin
- systemctl start mariadb
- systemctl habilitar mariadb
- systemctl restart httpd
- yum instalar 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
- chown apache: -R MyApp /
- Crear base de datos:
# 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
- Cree el archivo /etc/httpd/conf.d/my_app.conf con contenido:
<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
toque /.autorelabel; reiniciar
En mi host edito / etc / hosts y entro en la línea (192.168.56.101 es la dirección IP del host-only de mi VM)
192.168.56.101 cakephp.myapp.net
Navegue a http://cakephp.myapp.net/
ToDo: Editar archivo de conexión de base de datos.