• No results found

3 Wireless Sensor Design with the New Architecture

3.4 Transduction Module

CakePHP es un framework Modelo-Vista-Controlador en su página web (https://cakephp.org/) pone a disposición su descarga, documentación 13 para

configuración y desarrollo.

A continuación, se transcribe parte de la documentación publicada en su página web, siendo necesario comprender sobre todo las convenciones. La figura 8, muestra la arquitectura del framework MVC CakePHP.

Figura 8: Ciclo de solicitud en CakePHP.

Fuente: Capturada de cakephp.org – (Cake Software Foundation, 2018)

2.7.1 Convenciones de CakePHP

Es necesario conocer las convenciones del framework ya que serán los nombres de los artefactos de software que se van a producir.

Como dice en su documentación toma un poco de tiempo aprenderlas, pero a la larga nos ahorrará un tiempo muy conveniente. Por ejemplo, disminuir el mantenimiento de archivos y facilitar un desarrollo uniforme.

2.7.2 Convenciones del controlador

“Los nombres de clase del controlador son en plural, en estilo CamelCase 14

y terminan con la palabra Controller. Ejemplos: UsersController y ArticleCategoriesController. Los métodos públicos en los controladores a menudo se exponen como "acciones" accesibles a través de un navegador web. Por ejemplo, /users/view ejecuta el método view() en el controlador

UsersController” (Cake Software Foundation, 2018).

2.7.3 Consideraciones de URL para nombres de controladores

(Cake Software Foundation, 2018) explica que a los controladores de una sola palabra se le asignan a una ruta URL simple en minúsculas. Por ejemplo, para acceder a UsersController(que se definiría en el nombre de archivo UsersController.php ) sería http://example.com/users. Si bien puede enrutar múltiples controladores de palabras de la forma que desee, la convención es que sus URL son minúsculas y discontinuas usando la clase DashedRoute, para /article-categories/view-all seria de la forma correcta de acceder a la acción de la forma ArticleCategoriesController::viewAll().

2.7.4 Convenciones de base de datos

(Cake Software Foundation, 2018) recomienda que los nombres de las tablas correspondientes a los modelos CakePHP, sean plurales y deben estar subrayados. Por ejemplo, users, article_categories y user_favorite_pages

respectivamente. Los nombres de campo/columna con dos o más palabras deben estar subrayadas: first_name.

14

Las claves foráneas en las relaciones hasMany, belongsTo/hasOne se reconocen de forma predeterminada como el nombre (singular) de la tabla relacionada seguido de _id. Por lo tanto, si los usuarios tienen muchos artículos, la table articles se referirá a la users tabla mediante una clave

user_id externa. Para una tabla como article_categories cuyo nombre

contiene varias palabras, la clave externa sería article_category_id.

Las tablas de combinación, que se usan en las relaciones BelongsToMany

entre modelos, deben tener el nombre de las tablas modelo a las que se unirán o el comando bake no funcionará, se organizará en orden alfabético (en

articles_tags en lugar de tags_articles). Si se necesita agregar columnas

adicionales en la tabla de unión, se debe crear una clase de entidad/tabla separada para esa tabla.

Además de usar un entero de incremento automático como claves primarias, también se puede usar columnas UUID. CakePHP creará valores UUID automáticamente usando ( Cake\Utility\Text::uuid()) cada vez que guarde nuevos registros usando el Table::save()método.

2.7.5 Estructura de los directorios de CakePHP

(Cake Software Foundation, 2018) recomienda una vez se haya descargado el esqueleto de la aplicación CakePHP, hay algunas carpetas de nivel superior que se deben ver:

•La carpeta bin contiene los ejecutables de la consola Cake.

•La carpeta de config contiene los (pocos) archivos de configuración que utiliza CakePHP, como los detalles de la conexión de la base de datos, los programas de arranque, los archivos de configuración del núcleo y otros.

•La carpeta de logs normalmente contiene sus archivos de registro, dependiendo de su configuración de registro.

•La carpeta src será donde se ubicaran los archivos fuente de la aplicación.

•La carpeta de test será donde coloques los casos de prueba para la aplicación.

•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 mensajes de traducción, descripciones de modelos y, a veces, información de sesiones.

•La carpeta del provider es donde se instalará CakePHP y otras dependencias de aplicaciones de Composer. No se recomienda editar estos archivos, ya que Composer sobrescribirá los cambios la próxima vez que actualice.

•El directorio webroot es la raíz de documentos públicos de la aplicación. Contiene todos los archivos que desea que sean accesibles públicamente.

Nota: Las carpetas tmp y logs deben existir y deben poderse escribir, de lo contrario, el rendimiento de la aplicación se verá gravemente afectado. En el modo de depuración, CakePHP avisa si estos directorios no se pueden escribir.

2.7.8 La carpeta src

(Cake Software Foundation, 2018) describe la carpeta src de CakePHP es donde realizará la mayor parte del desarrollo de la aplicación.

•Controlador: Contiene los controladores de la aplicación y sus componentes.

•Locale: Almacena archivos de cadenas para la internacionalización. •Model: Contiene las tablas, entidades y comportamientos de la

aplicación.

•Shell: Contiene los comandos de consola y las tareas de consola para la aplicación.

•View: Aquí se ubican las clases presenciales: vistas, celdas, ayudantes.

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