CakePHP 3 en un entorno profesional con Cloud9, GitHub y Composer

Cuando comenzamos a desarrollar una aplicación web desde nuestra computadora inicialmente requerimos de un entorno que por lo menos cubra las necesidades mínimas para comenzar a trabajar en nuestro proyecto, si se trata de una aplicación con el framework CakePHP por lo menos requerimos de un servidor Apache, un gestor de base de datos MySQL y desde luego tener instalado la última versión del lenguaje PHP, para ello tenemos herramientas como XAMPP, MAMP, WAMP, AMPPS que con unos cuantos pasos ya tenemos ejecutando un servidor local en nuestra computadora, desde luego que estas son buenas opciones pero con el tiempo lo mas probable es que nuestra aplicación irá creciendo y a su vez quizá requiriendo de algunas configuraciones extra en nuestro servidor, habilitar extensiones, instalar y mantener actualizados nuestros plugins de manera automatizada (manejar dependencias), tener un control de versiones dentro de nuestro proyecto sobre todo si existen varias personas desarrollando el mismo proyecto. Vaya que son varios aspectos a tomar en cuenta.

Trabajar en un entorno de desarrollo profesional nos da la flexibilidad de poder personalizar cada una de nuestras herramientas que implica el desarrollo de nuestro proyecto, es decir, por ejemplo tener acceso a una terminal para poder instalar las extensiones que necesitemos para nuestro proyecto, utilizar un manejador de dependencias como Composer para instalar y tener actualizados cada uno de nuestros plugins o librerías, contar con un sistema de control de versiones como GIT y mantener todos los cambios del proyecto en GitHub. Todas estas herramientas en conjunto nos ayuda bastante a automatizar nuestro trabajo y en este tutorial vamos a crear desde cero un entorno de desarrollo profesional con distintas herramientas que nos ayudarán a mejorar nuestro flujo de trabajo, herramientas tales como Cloud9 que nos ofrece un entorno de desarrollo en la nube bajo una plataforma Linux, GIT que es un sistema de control de versiones, GitHub para compartir y dar a conocer nuestro código al mundo y no menos importante Composer que es un manejador de dependencias para PHP.


CakePHP 3 en un entorno profesional con Cloud9, GitHub y Composer

En el siguiente tutorial vamos a instalar el framework CakePHP 3 en un entorno en la nube con Cloud9 (C9), la instalación dentro de este entorno lo realizaremos  con Composer y nuestro proyecto a la vez estará conectado con GitHub para ir subiendo cada uno de los cambios que realicemos progresivamente dentro de nuestra aplicación. Bien, ahora si vamos a comenzar con el tutorial paso a paso:

1. Accede a la página oficial de GitHub y crea una nueva cuenta, es gratis para repositorio públicos.

2. Si ya tienes tu cuenta de GitHub creada vamos a proceder a crear un nuevo repositorio, el repositorio para este tutorial lo llamaré ‘cakephp3’.

Crear repositorio en GitHub

Podemos agregar una descripción del proyecto y finalmente hacemos click en la opción ‘Create repository’

Crear repositorio

2. Una vez creado el repositorio, GitHub nos provee dos opciones para sincronizar nuestro repositorio con nuestro proyecto local, lo podemos hacer mediante SSH o HTTPS, vamos a utilizar la última opción, entonces copiamos el enlace HTTPS.

Sincronizar repositorio GitHub mediante SSH

3. Accede a la página oficial de Cloud9 y crea una nueva cuenta, es gratis.

4. Si ya tienes tu cuenta de Cloud9 creada vamos a proceder a crear un nuevo proyecto a partir de una URL, para ello vamos a dirigirnos a la opción ‘Create new workspace’ y posteriormente a la opción ‘Clone From URL’

Crear proyecto en C9

5. En la parte superior de la siguiente ventana tenemos un campo ‘Source URL’ en el que debemos pegar el enlace que copiamos anteriormente desde nuestro repositorio recién creado en GitHub (HTTPS).

Pegar HTTPS URL al proyecto en C9

Procedemos a crear el proyecto dando click al botón ‘Create’.

Si nuestro proyecto ha sido creado con éxito lo podemos visualizar en la lista de todos nuestros proyectos de C9 en la parte izquierda del Dashboard.

Proyecto en c9 instalado con éxito

6. Una vez creado nuestro proyecto vamos a proceder abrirlo seleccionando el proyecto como tal y seguido del botón ‘Start editing’

Abrir el proyecto en C9

Podemos observar que el proyecto se abre en otra pestaña: Proyecto en c9

Como puedes observar en la imagen tenemos nuestro proyecto vacío por el momento pero con los pasos que hemos realizado hasta ahora ya tenemos conectado nuestro proyecto con nuestro repositorio en GitHub.

Si bien hasta ahora tenemos nuestro proyecto vacío hay una característica de C9 a destacar que personalmente me dejo alucinado y es el IDE integrado que nos ofrece este entorno en la nube el cual nos da la facilidad de comenzar a desarrollar nuestros proyectos al instante con todas las prestaciones que nos puede ofrecer un IDE.

7. Ahora si! vamos a proceder a instalar un nuevo paquete del Framework CakePHP 3. Otra de las cualidades a mencionar de C9 es que ya viene con Composer instalado por defecto, genial no? ya nos ahorramos ese paso. En la parte inferior de nuestro IDE podemos observar un conjunto de pestañas, la primera es nuestra terminal ya que como mencionaba al principio del artículo Cloud9 trabaja bajo la plataforma Linux (Ubuntu) de tal forma nos provee con una terminal Bash. Dentro de la terminal podemos ingresar los mismos comandos tal como si trabajáramos en una computadora con sistema operativo Linux, siendo así vamos a proceder a crear nuestro proyecto en CakePHP 3 con Composer con las instrucciones tal como nos indica la documentación oficial del framework:

Instalando CakePHP 3 con composer

Tal como nos indica la documentación de CakePHP hemos ejecutado la siguiente instrucción:

[html]

composer create-project cakephp/app ./cakephp3 –prefer-dist

[/html]

Con esta instrucción Composer nos instalará un nuevo paquete de CakePHP en su última versión dentro del directorio actual que es el mismo de nuestro proyecto llamado ‘cakephp3’. En el proceso de descarga nos pedirá la confirmación para sus respectivos permisos de carpetas, simplemente escribimos la tecla Y seguido de ENTER para continuar la descarga del paquete.

Confirmar permisos de carpeta instalación CakePHP 3

Como podemos observar en la imagen, Composer ya nos descargó el paquete completo del framework:

CakePHP 3 instalado

Hasta ahora vamos bien pero si te das cuenta en la parte izquierda de nuestro IDE tenemos la estructura de directorios de CakePHP dentro de una sub carpeta también llamada ‘cakephp3’. Si ejecutamos la aplicación tal como está nos dará un conflicto en las rutas por tal razón aun nos falta unos cuantos pasos pero no te preocupes lo resolvemos con unos cuantos comandos a continuación 8-)

8. Nuevamente desde la terminal que nos provee C9 vamos a escribir los siguientes comandos:

shopt -s dotglob : Con esta sentencia estamos activando la variable dotglob para incluir los nombres de los archivos que comienzan con un punto ‘.’

mv cakephp3/* ./ : Con esta sentencia movemos todos los archivos del directorio ‘cakephp3’ a la carpeta raíz, con esto ya solventamos el conflicto de rutas.

rm -rf cakephp3 : Con esta sentencia eliminamos el sub directorio ‘cakephp3’ en el que inicialmente se descargó el paquete del framework, como ya movimos todos los archivos al directorio raíz entonces este sub directorio ‘cakephp3’ debe ser eliminada.

En la siguiente imagen puedes ver el resultado una vez ejecutados los comandos descritos anteriormente:

Moviendo directorios para el correcto funcionamiento de CakePHP3

Ahora si! como podemos observar en la parte izquierda de nuestro IDE la estructura de carpetas ya está correctamente organizada.

9. Al fin, ya llegó el momento mas esperado… ejecutar nuestra aplicación: Dentro de nuestra estructura de directorios vamos a abrir el archivo index.php.

Abrir archivo index

Una vez abierto el archivo vamos a dirigirnos a la parte superior del IDE y al botón ‘Run’

Ejecutando el servidor apache en c9

Con este paso estamos ejecutando el servidor Apache dentro de nuestro entorno en la nube, lo podemos verificar en la pestaña que se abre en la parte inferior del IDE.

10. Finalmente abrimos una nueva pestaña dentro de nuestro navegador y escribimos la siguiente ruta: https://cakephp3-edsonmgoz.c9.io/ en mi caso la ruta está conformada primeramente con el nombre del proyecto ‘cakephp3’ seguido del nombre de usuario de mi cuenta en Cloud9 ‘edsonmgoz’ y finalmente la ruta con el dominio de cloud9 ‘c9.io’, entonces de acuerdo a como nombraste a tu proyecto y juntamente con tu nombre de usuario puedes ir conformando la ruta correspondiente. De todas formas en la parte inferior del IDE al ejecutar el servidor nos muestra el enlace al que debemos acceder para ejecutar nuestro proyecto.

Proyecto CakePHP 3 ejecutando

Listo! ya tenemos nuestro proyecto de CakePHP 3 ejecutando en un entorno en la nube 8-)

En 10 pasos hemos puesto en marcha nuestro entorno de desarrollo con herramientas que nos van a ser bastante  útiles al momento de desarrollar nuestra aplicación web, acotar también que nuestro proyecto se encuentra sincronizado con nuestro repositorio en GitHub que hemos creado inicialmente.


Creando nuestro primer commit en GIT y subir los cambios a GitHub

Como bien te mencioné al principio trabajar con un sistema de control de versiones es bastante importante sobre todo si hay varios desarrolladores involucrados en nuestro proyecto, aún así, si estas trabajando solo en un proyecto te recomiendo que también utilices un sistema de control de versiones, así tu mismo tienes el control de tu proyecto en varias versiones y seguir una linea de tiempo del desarrollo de toda tu aplicación.

Entonces vamos a proceder a agregar nuestros cambios y crear nuestro primer commit:

– Desde la terminal del IDE de Cloud9 vamos a ejecutar el comando git add -A para agregar todos nuestros cambios a nuestro repositorio dentro de nuestro entorno de desarrollo en la nube.

–  Posteriormente vamos a crear nuestro primer commit ejecutando el siguiente comando git commit -m «Archivos base del proyecto»

– Finalmente «empujamos» todos nuestros cambios a nuestro repositorio creado en GitHub con el siguiente comando git push origin master , nos pedirá nuestros respectivos datos de cuenta de GitHub como ser nombre de usuario y contraseña.

Subiendo cambios a GitHub

Listo! ya tenemos agregado nuestro primer commit y también lo tenemos publicado en GitHub, si nos vamos a nuestro repositorio creado en GitHub y actualizamos la página podemos observar los archivos de nuestro proyecto:

Proyecto CakePHP 3n GitHub


Instalación de phpMyAdmin en Cloud9

Para finalizar vamos a instalar phpMyAdmin para poder gestionar nuestras bases de datos y seguido de la instalación vamos a crear una base de datos y conectarlo con nuestra aplicación cakephp3.

– Nos dirigimos nuevamente a nuestra terminal y escribimos los siguientes comandos:

mysql-ctl start : Para inicializar nuestra base de datos dentro de nuestro entorno.

phpmyadmin-ctl install : Para instalar phpMyAdmin dentro de nuestro entorno.

Instalación de phpMyAdmin en C9

Listo! ya tenemos instalado phpMyAdmin dentro de nuestro entorno de desarrollo, si observamos a detalle al finalizar la instalación nos provee el nombre de usuario para acceder a phpMyAdmin que es el mismo nombre de usuario de nuestra cuenta de Cloud9 y también nos indica que podemos acceder a ella sin contraseña (dentro de phpMyAdmin podemos establecer una contraseña para mayor seguridad)

Ahora si accedemos al siguiente enlace https://cakephp3-edsonmgoz.c9.io/phpmyadmin/ , como lo mencioné anteriormente el enlace varia de acuerdo al nombre del proyecto que vayas a crear y también del nombre de usuario que tengas en Cloud9.

Ejecutando phpMyAdmin en C9

Y listo! en unos cortos pasos ya tenemos phpMyAdmin instalado para poder manejar nuestras bases de datos.

Si accedemos a phpMyAdmin podemos observar que ya tenemos creada una base de datos por defecto llamada c9:

Base de datos creada

Está demás decir que esta base de datos ya la crea Cloud9 por nosotros, podemos crear mas bases de datos pero en este caso particular voy a trabajar con la base de datos creada por defecto para proceder a la conexión con nuestro proyecto ‘cakephp3’

Es momento de gozar de una característica más de Cloud9 que es el IDE integrado que nos ofrece, a partir de este IDE vamos a realizar la conexión de nuestra base de datos abriendo el archivo app.php que se encuentra en el directorio config.

Conexión a bd CakePHP 3

Una vez abierto el archivo app.php tenemos que dirigirnos al arreglo Datasources y llenar los campos correspondientes de host, username, password y database.

Si ahora actualizamos nuevamente el navegador donde se encuentra nuestra aplicación podemos observar y verificar que la conexión a la base de datos se realizó de manera correcta:

Conexión a BD con éxito

A partir de aquí podemos comenzar a desarrollar nuestra aplicación en un entorno de desarrollo profesional con todas las prestaciones que nos ofrecen las herramientas mencionadas durante todo el tutorial.


Si existen algunos detalles que no te quedaron claros, a continuación te dejo el video donde desarrollo los mismos pasos para instalar un paquete del framework CakePHP 3 bajo un entorno de desarrollo profesional con Cloud9, GitHub y Composer:

En conclusión:

Con el uso de todas estas herramientas tenemos la posibilidad de trabajar en un entorno de desarrollo que nos permite automatizar la mayor parte de nuestras tareas comunes durante todo el proceso de desarrollo de una aplicación, tareas como manejar nuestras dependencias con Composer o manejar un sistema de control de versiones con GIT son imprescindibles para un desarrollador web y que mejor que tenerlo todo en uno acompañado de un entorno en la nube bajo una plataforma Linux el cual nos permite también ejecutar y probar nuestras aplicaciones asemejándose a un entorno de producción.

Ahora dime tu? que opinas de este tipo de entornos de desarrollo basados en la nube, cuando yo lo probé por primera vez me quede encantado ya que ademas de contar con todas las herramientas que te mencioné durante todo el tutorial también tengo la facilidad de abrir cualquier proyecto desde cualquier computador ya que solamente se necesita un navegador para ejecutar el proyecto y trabajar sobre el mismo con el IDE integrado que nos provee Cloud9. Para finalizar por favor te pido que compartas este tutorial para que así muchos desarrolladores conozcan este tipo de herramientas y las prestaciones que nos ofrece. Dejame también tu opinión acá abajo en los comentarios y cuéntame como te fue a ti.

Saludos!!!

firma emm

15 respuestas a «CakePHP 3 en un entorno profesional con Cloud9, GitHub y Composer»

    1. Hola Gustavo, gracias por el comentario, estuve ausente por un tiempo por razones personales pero eso no quiere decir que abandone el Blog por eso publico contenido siempre que puedo. Saludos 8-)

    1. Hola Daniel, muy agradecido por tu comentario. La verdad que trabajar con este tipo de entornos en la nube me parece bastante interesante y quería compartirlo con la comunidad de la manera mas clara posible, me alegra que te haya sido útil. Saludos!!!

  1. Edson, poniendo manos a la obra muy surgió una que quizás su solución no sólo me beneficie a mi, a si que en un exceso de confianza quisiera pedirte si sos tan amable pudieras explicar como ejecutar el ejemplo del cookbook oficial el cual dice para verificar q funciona lo que hemos hecho con Baker parque dirigirse a localhost:8765 y al no saber como tome como base el camino dd manera similar a cómo se hizo con el phpadmin es decir https://cakephp3-miusuariocloud9.c9.io/localhost:8765 pero sólo obtengo un error. O sino seria genia si pudieras desarrollar el ejemplo del tutorial. Desde ya muchas gracias.

    1. Hola Daniel, el ejemplo que usa la documentación de CakePHP para verificar su funcionamiento es en base a un servidor de desarrollo local que facilita el framework desde linea de comandos, si pruebas este ejemplo en tu computadora de manera local funcionará de manera correcta, pero en el caso de Cloud9 es normal que te de ese error porque ya tenemos un servidor dentro de C9 ejecutándose, entonces si tu ingresas la URL que me mencionas es como si estuvieses ejecutando dos servidores a la vez lo cual no tiene sentido, espero haya sido claro con la explicación. Saludos!

  2. Hola amigo Edson felicitaciones por tus enseñanzas, tenia una duda el C9 es gratis? estoy registrandome y me pide tarjeta de credito?? Saludos

    1. Hola Juan Manuel, puedes revisar la parte de precios en C9 https://c9.io/pricing puedes crear una cuenta gratuita pero quizá para registrarse necesite un número de tarjeta, antes no era así ya que yo cree mi cuenta sin ingresar ninguna tarjeta de crédito, quizá ahora cambio su forma de registro.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *