{"id":19391726,"url":"https://github.com/reflej0/ejemplo-completo-en-cakephp3","last_synced_at":"2026-06-20T05:01:57.520Z","repository":{"id":84507672,"uuid":"92879508","full_name":"Reflej0/Ejemplo-Completo-en-CakePHP3","owner":"Reflej0","description":"Un ejemplo completo en CakePHP3 con paginación por Ajax, Filtros de Busqueda, RBAC y más.","archived":false,"fork":false,"pushed_at":"2017-05-30T22:47:06.000Z","size":5213,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-24T21:11:48.552Z","etag":null,"topics":["ajax","cakephp","cakephp3","ejemplo","example","filtro","php","rbac-management","roles"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Reflej0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-30T21:53:49.000Z","updated_at":"2017-07-14T23:31:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"84b505eb-1be2-47ff-b181-2f9e6c5e5db9","html_url":"https://github.com/Reflej0/Ejemplo-Completo-en-CakePHP3","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Reflej0/Ejemplo-Completo-en-CakePHP3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reflej0%2FEjemplo-Completo-en-CakePHP3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reflej0%2FEjemplo-Completo-en-CakePHP3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reflej0%2FEjemplo-Completo-en-CakePHP3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reflej0%2FEjemplo-Completo-en-CakePHP3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Reflej0","download_url":"https://codeload.github.com/Reflej0/Ejemplo-Completo-en-CakePHP3/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reflej0%2FEjemplo-Completo-en-CakePHP3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34557553,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ajax","cakephp","cakephp3","ejemplo","example","filtro","php","rbac-management","roles"],"created_at":"2024-11-10T10:28:45.426Z","updated_at":"2026-06-20T05:01:57.500Z","avatar_url":"https://github.com/Reflej0.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ejemplo Completo en CakePHP3\nEn este ejemplo se muestran las implementaciones de Paginación por Ajax, Filtro de Búsqueda, Ordenamiento de Columnas por parte de las tablas implicadas y además un sistema de usuarios y roles (RBAC) con distintos permisos según su rol. También se utiliza las opciones de lenguaje como el Inflector y el Locale.\n\n# Lógica del Ejemplo\nEl ejemplo se basa en las tablas Ingredientes y Recetas, las cuales tienen relación n a n, es decir una receta puede tener muchos ingredientes, y un ingrediente puede ser utilizado en muchas recetas, para resolver esta parte se debe recordar que las relaciones n a n, terminan generando otra nueva relación(tabla) en la base de datos que contiene los IDs de las relaciones(tablas) participantes.\nCon respecto a la funcionalidad, se diseño un ABM (Alta, Baja, Modificación) de Ingredientes y Recetas, pero para poder implementar el concepto de usuarios y roles, se estableció que los usuarios con el rol cocineros puedan realizar todas las acciones y los usuarios tipo usuario(valga la redundancia) solo listar Ingredientes y Recetas.\nA sí mismo, se permite en la pantalla de acceso(login) la creación de mas usuarios, pero con el rol de usuario.\n\n# A tener en cuenta\nSe han utilizado plugins externos:  \nReglas de Inflector(Español 2017): http://gtechrl.blogspot.com.ar/2017/02/cakephp-3x-reglas-del-inflector-en.html  \nCakeDC(Para los roles): https://github.com/CakeDC/users  \nIdiomas(Locale): https://github.com/cakephp/localized  \n\n# Instalacion\nPara probar este ejemplo, se necesita tener instalado y activado el XAMPP con sus módulos Apache y MySQL. Se recomienda utilizar NetBeans para la administración del directorio de archivos. El archivo vendor.zip se debe descomprimir.  \n*Ademas se adjunta una base de datos de prueba en el directorio bd con algunos registros de prueba.\n\n# Version ONLINE\nPara observar el ejemplo sin necesidad de instalar: http://reflejo.epizy.com/cakerbacft/  \nUsuarios:  \nRodrigo_Lopez  \nasd1234  \nCocinero_master  \nasd1234\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freflej0%2Fejemplo-completo-en-cakephp3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freflej0%2Fejemplo-completo-en-cakephp3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freflej0%2Fejemplo-completo-en-cakephp3/lists"}