Primeros pasos con cakephp-3.0

Crea primero ‘¡Hola mundo!’ aplicación con CakePHP 3.x (Migraciones de tablas de base de datos. Parte 2)

Puede crear fácilmente tablas para su base de datos o soltarlas si lo desea. Si desea hacer eso, debe aprender a escribir ‘Migraciones’ para la base de datos deseada.

Los archivos de migraciones deben estar ubicados en la carpeta config/Migrations. Los nombres de los archivos pueden estar en los siguientes formatos:

  • AAAAMDDHHIISS_(Crear|Alterar|Eliminar)AdministratorsTable.php

  • (1-9){1,}_(Crear|Alterar|Eliminar)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 desea ejecutar la migración, debe ejecutar el siguiente comando:

Las migraciones de bin/cake migran para crear la(s) tabla(s).

Si desea retroceder:

Reversión de migraciones bin/cake: revertirá la última migración, donde existe la función drop()

bin/cake migraciones (-t|--target) all - revertirá todas las migraciones, donde existe la función drop()

Instalación Cakephp 3.X

Requisitos:

  • PHP 5.6.0 o mayor extensión PHP mbstring (funciona por defecto en WAMP/XAMPP, si no, habilítelo)
  • Extensión PHP intl (Disponible en WAMP/XAMPP, debe habilitarlo de php.ini)
  • CakePHP se ejecutará en una variedad de servidores web como nginx,
  • LightHTTPD o Microsoft IIS.

Antes de comenzar, debe asegurarse de que su versión de PHP esté actualizada:

php -v

Use Composer para instalar Cakephp 3 Framework,

Composer es un método oficialmente compatible para la instalación, así que descargue Composer en Composer (Windows/Linux/Mac)

Ejecute 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, debe tener instalada una aplicación CakePHP en funcionamiento 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 más fácil de instalar cakephp

Siga los siguientes pasos,

  1. Ve a este Repositorio Git
  2. Descargue cakeDC/oven para una fácil instalación
  3. Extraiga el archivo zip dentro de LOCALHOST
  4. Dar permiso 777 a esa carpeta
  5. Ejecute el archivohorno.php (disponible dentro de la carpeta)
  6. Se abrirá una página con muchas opciones, elija la opción según su preferencia
  7. Haga clic en la imagen y siéntese. Su proyecto se instalará en un par de minutos.

ejecutar:

bin/cake server

De forma predeterminada, sin ningún argumento provisto, esto servirá 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 que está listo para su primera aplicación.

Para obtener más detalles sobre la instalación y configuración, siga Instalación de Cakephp 3.X

Configuración del 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 una nueva.

Después de ese procedimiento, debe proporcionar acceso a la base de datos para el proyecto.

Debe ingresar al archivo /ruta/a/su/proyecto/config/app.php, luego busque Datasources default. En esa matriz, debe cambiar ’localhost’ (bajo demanda), ‘usuario’, ‘contraseña’ y ‘base de datos’.

o a Su navegador y actualice la página. El problema de DB debería desaparecer y mostrar “Green Tick” en el lado izquierdo.

¡Listo! ¡Tu primer proyecto ha sido configurado!

Crea primero ‘¡Hola mundo!’ aplicación con CakePHP 3.x (Introducción. Parte 1)

CakePHP 3.x tiene la capacidad de hornear controladores, modelos, vistas y otros objetos definidos por el marco.

Nota: si ha tenido algo de experiencia con el marco Laravel, el componente artisan es similar a bake.

La aplicación bake se encuentra en la carpeta bin; los siguientes son algunos de los comandos disponibles:

  • bin/cake hornear shell %shellName% - para hornear ShellClass
  • controlador de horneado bin/cake %controllerName% - para hornear la clase de controlador
  • bin/cake modelo de horneado %modelName% - para hornear modelo + clase de entidad
  • bin/cake bake view %viewName% - para hornear Ver plantilla
  • bin/cake hornear todo %className% - para hornear Controlador, Modelo + Entidad, Vista para desarrollador.

Nota: No podrá bake model si no tiene tablas en su base de datos

Nota: Si ‘horneas todos’ los componentes, obtendrás ‘Controladores’ con acciones ‘CRUD’ predefinidas.

Crea 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 verá obligado a crear manualmente el archivo del controlador en src/Controller)
  • Horneado (ejecutando el comando bin/cake bake controller %controllerName% desde CLI)

Si desea crearlo manualmente, vaya a la carpeta src/Controller y cree el archivo que sigue el siguiente patrón:

([A-Z]{1}[a-z]{1,})Controlador.php

En ese controlador, debe definir namspace, que se utilizará:

<?php
    namespace App\Controller;

Entonces debe nombrarlo como nombre de archivo, ej. AdminiController:

use App\Controller\AppController;

class AdminController extends AppController{}

Dentro de esta clase, debe crear su primer método, ej. iniciar sesión:

public function login(){}

Si escribe en su navegador: http://{{project-name}}/admin/login arrojará un error de falta de plantilla. ¿Cómo resolver este problema?

Debe crear en el archivo src/Template/Admin/ login.ctp.

Nota: *.ctp comodín: es un archivo de plantilla de pastel, que se usa para pasar/renderizar datos que usted configura a través del controlador.

En ese archivo simplemente escriba ‘¡Hola mundo!’ donde quieras, actualiza la página con el error de plantilla y obtendrás tu Mundo, ¡que te saluda!

Nota: De forma predeterminada, src/Template/Layout/default.ctp se 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 recién instalado

  • Instalé un CentOS-7-x86_64-Minimal-1611.iso en VirtualBox, dos interfaces de red: primero NAT, segundo Host-Only

  • configure ONBOOT=yes en /etc/sysconfig/network-scripts/ifcfg-enp0s3

  • reiniciar

  • actualización mmm

  • yum install net-tools (para obtener ifconfig y netstat)

  • yum instalar 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 iniciar httpd

  • firewall-cmd –permanente –zone=público –add-service=http

  • firewall-cmd –permanente –zone=público –add-service=https

  • cortafuegos-cmd –recargar

  • yum instalar httpd mariadb-servidor mariadb php phpmyadmin

  • systemctl iniciar mariadb

  • systemctl habilitar mariadb

  • systemctl reiniciar 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 MiAplicación/

  • 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

  • Crear archivo /etc/httpd/conf.d/my_app.conf con contenido:

    <VirtualHost *:80> ServerAdmin [email protected] 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

  • toque /.autorelabel; reiniciar

  • En mi host, edito /etc/hosts e ingreso la línea (192.168.56.101 es la dirección IP solo del host de mi VM) 192.168.56.101 cakephp.myapp.net

  • Navegar a http://cakephp.myapp.net/

  • ToDo: Edita el archivo de conexión a la base de datos.