Comenzando con cakephp

Primer proyecto vacío básico

Creación inicial y descarga (CakePHP 3.x)

La forma más fácil de crear un nuevo proyecto CakePHP es a través de Composer (si no conoce Composer, busque aquí para obtener más información)

Instalar compositor

Si necesita instalarlo y está en una máquina con Windows, siga [esta guía] (https://getcomposer.org/doc/00-intro.md#installation-windows)

Si está en Linux/Unix/OSX, siga esta guía

Crear el primer proyecto CakePHP

Abra una ventana de consola y navegue hasta su instalación de php (en Windows con la instalación predeterminada de xampp, esta es C:\xampp\php)

Para crear un proyecto vacío, ejecute el siguiente comando:

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

Hornear/Modelo/Vista/Controladores

La magia de CakePHP es hornear: una generación automatizada de código de controlador, modelo y vista con opciones CRUD básicas.

Antes de hornear, debe tener configurada la conexión de su base de datos. Para hacer esto necesitas editar el archivo config/app.php en tu proyecto.

'Datasources' => [
'default' => [
    'className' => 'Cake\Database\Connection',
    'driver' => 'Cake\Database\Driver\Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'username' => 'my_app', //in basic xampp: root
    'password' => 'sekret', //in basic xampp: ''
    'database' => 'my_app', //name of the database you want to connect to your project
    'encoding' => 'utf8',
    'timezone' => 'UTC',
    'cacheMetadata' => true,
]

],

Si su base de datos está conectada correctamente, ingrese bin/cake bake en la carpeta raíz de su proyecto en una ventana de consola.

Esto debería generar algo como esto:

Welcome to CakePHP v3.1.6 Console
---------------------------------------------------------------
App : src
Path: /var/www/cakephp.dev/src/
PHP: 5.5.8
---------------------------------------------------------------
The following commands can be used to generate skeleton code for your application.

Available bake commands:

- all
- behavior
- cell
- component
- controller
- fixture
- form
- helper
- mailer
- migration
- migration_snapshot
- model
- plugin
- shell
- shell-helper
- template
- test

By using `cake bake [name]` you can invoke a specific bake task.

Para simplificar, vamos a hornear todo con la configuración predeterminada. Para ello entras

cake bake all

Esto generará algo a lo largo de esas líneas:

Welcome to CakePHP v3.2.11 Console
---------------------------------------------------------------
App : src
Path: C:\xampp\htdocs\tipping\src\
PHP : 5.6.15
---------------------------------------------------------------
Bake All
---------------------------------------------------------------
Possible model names based on your database:
- users
- blogs
Run `cake bake all [name]` to generate skeleton files.

Al ejecutar cake bake all <modelNameYouWantToBake> se crean los archivos de modelo, tabla, controlador, dispositivo y vista. Ejecute esto para cada nombre de modelo posible y tendrá un proyecto en funcionamiento con opciones CRUD básicas.

Ahora puede abrir su navegador y ver cómo se ve y comenzar a extender el proyecto según su propia lógica.

CakePHP 2.x Introducción básica

Hablará sobre la estructura de directorios de CakePHP, lo que significa cada carpeta.

CakePHP tiene algunas carpetas principales

  1. aplicación: contiene el código fuente de nuestra aplicación, todo nuestro código se encuentra en este directorio.
  2. lib - Este es el repositorio principal de cakephp, contiene todo el código base de la biblioteca de cakephp. No se sugiere editar el código dentro de este directorio, ya que pueden causar errores al actualizar la biblioteca cakephp.
  3. complementos: contiene el código de complementos de cakephp que se utilizará para nuestra aplicación.
  4. proveedores: contiene código externo. Este código no usará la biblioteca cakephp.
  5. index.php: este es el archivo de índice.

Podemos tener múltiples aplicaciones alojadas dentro de un solo proyecto. es decir, pueden usar las mismas carpetas lib, complementos y proveedores.

Para modificar el código lib, la mejor práctica es extenderlos en nuestra carpeta de aplicaciones y realizar las modificaciones.

La carpeta de complementos y proveedores es compartida por todas las aplicaciones alojadas en el mismo directorio.

index.php es el archivo que se llama primero.

ingrese la descripción de la imagen aquí

Ahora debemos saltar a nuestra carpeta de aplicaciones

Instalación o Configuración

Requisitos

La siguiente guía de configuración es para cakephp 2.8 y superior. Todas las versiones de cakephp inferiores a 2.8 no son compatibles con php 7

Servidor HTTP. Por ejemplo: apache. Se prefiere tener mod_rewrite, pero de ninguna manera es obligatorio.

  • PHP 5.5.9 o superior (incluido PHP 7).
  • Extensión PHP mbstring
  • Extensión PHP internacional

¡Atención! Tanto en XAMPP como en WAMP, la extensión mbstring funciona de manera predeterminada. En XAMPP, se incluye la extensión intl, pero debe descomentar extension=php_intl.dll en php.ini y reiniciar el servidor a través del Panel de control de XAMPP. En WAMP, la extensión intl está “activada” de forma predeterminada pero no funciona. Para que funcione, debe ir a la carpeta php (por defecto) C:\wamp\bin\php\php{version}, copiar todos los archivos que se parecen a icu*.dll y pegarlos en el directorio bin de apache C: \wamp\bin\apache\apache{versión}\bin. Luego reinicie todos los servicios y debería estar bien.

Si bien no se requiere un motor de base de datos, imaginamos que la mayoría de las aplicaciones utilizarán uno. CakePHP es compatible con una variedad de motores de almacenamiento de bases de datos:

  • MySQL (5.1.10 o superior)
  • PostgresSQL
  • Microsoft SQL Server (2008 o superior)
  • SQLite 3

Estructura de carpetas de CakePHP3

Después de que hayas descargado, estos son los archivos y carpetas que deberías ver:

  • La carpeta bin contiene los ejecutables de la consola de Cake.
  • La carpeta de configuración contiene los archivos de configuración que usa CakePHP. Los detalles de la conexión de la base de datos, el arranque, los archivos de configuración del núcleo y más deben almacenarse aquí.
  • La carpeta de complementos es donde se almacenan los complementos que utiliza su aplicación.
  • La carpeta de registros normalmente contiene sus archivos de registro, según la configuración de su registro.
  • La carpeta src será donde se colocarán los archivos de su aplicación.
  • La carpeta de pruebas será donde coloque los casos de prueba para su solicitud.
  • La carpeta tmp es donde CakePHP almacena datos temporales. Los datos reales que almacena dependen de cómo haya configurado CakePHP, pero esta carpeta generalmente se usa para almacenar descripciones de modelos y, a veces, información de sesión.
  • La carpeta de proveedores es donde se instalarán CakePHP y otras dependencias de la aplicación. Haga un compromiso personal de no editar archivos en esta carpeta.
  • El directorio webroot es la raíz del documento público de su aplicación. Contiene todos los archivos que desea que estén accesibles públicamente.

Asegúrese de que las carpetas tmp y logs existan y estén escribible, de lo contrario, el rendimiento de su aplicación será severamente impactado. En el modo de depuración, CakePHP le avisará, si no es así el caso.

Dentro de la carpeta src

La carpeta src de CakePHP es donde realizará la mayor parte del desarrollo de su aplicación.

La carpeta Consola contiene los comandos de la consola y las tareas de la consola para su aplicación. Para obtener más información, consulte Shells, tareas y herramientas de consola.

La carpeta Controlador contiene los controladores de su aplicación y sus componentes.

La carpeta Locale almacena archivos de cadenas para la internacionalización.

La carpeta Modelo contiene las tablas, entidades y comportamientos de su aplicación.

Ver: las clases de presentación se colocan aquí: celdas, ayudantes y archivos de plantilla.

Plantilla: los archivos de presentación se colocan aquí: elementos, páginas de error, diseños y archivos de plantilla de vista.

Requisitos

1-HTTP Server. For example: Apache. Having mod_rewrite is preferred, but by no means required.
2-PHP 5.5.9 or greater (including PHP 7)
3-mbstring PHP extens ion
4-intl PHP extension

Normalmente hago una instalación de apache y mysql en un linuxbox. También puedo usar Windows, sin embargo, no lo recomiendo;) Por lo tanto, generalmente hago una nueva entrada en el archivo /etc/hosts para que el nombre del sitio esté disponible para cakephp.

127.0.0.1   localhost caketest.local

siguiente paso para copiar todos los archivos cakephp en un subdirectorio dentro de /home/myusername/public_html/caketest

app
cake
index.php
plugins
README
vendors
.htaccess

luego configuré el sitio para apache (no es necesario),

<Host virtual *:80> DocumentRoot “/home/myusername/public_html/caketest” ServerName caketest.local
# This should be omitted in the production environment SetEnv APPLICATION_ENV development

<Directory "/home/myusername/public_html/caketest">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

reiniciar apache. también necesita editar los archivos .htaccess y colocar una directiva RewriteBase con la ruta hte al directorio real, p.

 RewriteBase /~myusername/caketest

cree una base de datos, configure la conexión db en los archivos de configuración de cake y eso es todo. puede apuntar su navegador a http://caketest.local si no desea una URL del sitio de prueba, puede omitir los hosts y la creación de apache vhost, pero la URL que debe usar debe ser http:/localhost/~myusername/caketest

otra cosa importante es habilitar el módulo userdir en apache, y también verificar si el uso de php también está habilitado en userdirs.