Un detalle muy importante durante el proceso de desarrollo de nuestra aplicación es ir probando cada uno de los módulos que lo conforman con una cierta cantidad de datos, entonces cargar datos de prueba a nuestras tablas de la base de datos se nos hace muy útil para probar de manera rápida y sencilla el funcionamiento de nuestra aplicación, esto implica probar por ejemplo filtros, paginación o finalmente probar el rendimiento de la aplicación frente a una gran cantidad de datos. Si bien podemos ir insertando registros uno por uno mediante una herramienta como phpMyAdmin o consultas SQL desde la linea de comandos, esto se puede convertir en algo caótico y tedioso si quisiéramos insertar decenas de datos y es allí donde entra en acción la librería Faker.
Faker es una librería PHP que nos ayuda a generar decenas de datos por nosotros, de esa manera lo único que tenemos que hacer es agregar la librería a nuestro proyecto y aplicar la gran cantidad de recursos que nos provee para generar tantos datos como sea necesario.
Durante esta lección aprenderemos a generar una gran cantidad de registros tanto para la tabla users como también para bookmarks de nuestra aplicación pocake, de tal forma obtendremos un cantidad considerable de datos para ir probando futuras funcionalidades del proyecto. Para la implementación de esta librería vamos apoyarnos bastante de las migraciones y la línea de comandos ya que por estos medios podremos generar una gran cantidad de datos de manera sencilla.
Sin más te dejo con el nuevo video donde te hablo de todo lo mencionado anteriormente y otras características más puestas a la práctica:
Actualización:
A partir de CakePHP 3.2 la implementación de Seeders es mucho mas sencilla y para reforzar esta lección he creado un tutorial completo que lo puedes ahora mismo siguiente este enlace.
Espero te haya sido útil esta lección, por favor no olvides compartirlo en tus redes sociales de esa manera este contenido pueda llegar a más personas 8-)
Sigue todas las lecciones del curso AQUÍ.
Saludos!!!

Hola, no he podido usar el comando cake bake all desde el Koding, tienes algun tuto para esto?
Gracias
Qué problema te genera Nelson?
Edson gracias, estaba digitando mal la sentencia, solucionado mil gracias por su respuesta.
Me alegra que lo hayas solucionado Nelson. Un saludo.
Muchas gracias por responder y por tan excelentes videos.
Muy profesional tu explicacion Edson, genial amigo.
Gracias Abraham por tomarte el tiempo de comentar. Un gran saludo!
Hola Edson respecto a archivos .js es recomendable que esten dentro de cada carpeta de la vista o en el Webroot?
De antemano muchas gracias
Hola Nelson, te recomiendo que sea dentro de la carpeta webroot y la subcarpeta js si corresponde a los archivos Javascript, incluso dentro de esta carpeta puedes ir organizando el contenido de tus scripts en otras carpetas (por módulos por ejemplo) . Saludos!!!
ahh ok por ejemplo si voy a crear un js para users, la ruta de este archivo seria webroot/js/users/funciones.js ?
Gracias..
Exacto ! 8-)
Hola de nuevo, de casualidad has trabajado con datepicker? pues a mi a la hora de guardar en el campo tipo date me guarda una fecha totalmente errada.
Gracias
Hola Nelson, quiza no estas guardando correctamente formateada la fecha, lo que puedes probar es que al momento de enviar los datos desde datepicker revises como te está llegando al controlador, puedes hacerlo con la ayuda de la barra de depuración del framework o con el método debug : http://book.cakephp.org/3.0/en/development/debugging.html#basic-debugging . Saludos!
Hola pues tengo esto:
Fecha de diligenciamiento
$(«.fechas»).datepicker({ changeMonth: true, changeYear: true, yearRange: ‘-100:+0’, dateFormat: ‘yy-mm-dd’ });
En el debug me sale esta fecha.
date2169-12-02 00:00:00.
Me estoy saltando algun paso?
Mil gracias
Eso depende en que formato quieras guardar la fecha para ello te puede ser útil esto http://book.cakephp.org/3.0/en/core-libraries/time.html Saludos!!!
Hola Edson
Recién ahora estoy mirando los videos de Cakephp3 que estas subiendo. Ya anteriormente he seguido todo el de CakePhp2, que estuvo buenísimo.
En esta nueva versión de Cakephp, veo que han incorporado características que también tiene Laravel, por lo que me resultó super fácil asimilarlo.
Nuevamente felicitarte por tu trabajo y espero que subas pronto los siguientes videos de este curso.
Saludos
Hola Francisco, es cierto lo que mencionas ya que si vienes de haber trabajado con frameworks como Laravel o Symfony se te hará mucho mas sencillo comprender como funciona CakePHP, de hecho si pensamos en algo en comun entre Laravel y CakePHP es que ambos utilizan componentes de Symfony lo cual da una buena señal de lo potente que puede llegar a ser trabajar con cualquier de estos frameworks. Saludos y gracias por comentar.
Hola Edson muy buenos los tutoriales estoy siguiendo paso a paso todos los videos y hasta ahora todo genial…. porfavor publica el siguiente el video de cakephp3…. saludos desde la llajta :)
Hola Samuel, estos días he estado trabajando en el curso de Symfony 2 pero ya pronto retomo también el curso de CakePHP 3, así que paciencia por favor. Saludos también desde Cocha 8-)
Gracias por el contenido de sus lecciones. Aquí en Brasil es difícil encontrar las clases tan rica en detalle, y una explicación simple para ser entendido.
Hola Thiago, te agradezco a ti por tomarte el tiempo de comentar y sobre todo por valorar mi trabajo, es gratificante recibir este tipo de comentarios. Te mando un gran saludo!
Hola Edson, estoy siguiendo tus videos para aprender el framework cake, y
estoy teniendo un problema con el faker. Sigo todos tus pasos, pero me
arroja error al hacer la migracion. Entiendo que vos estas usando una
versión anterior de cake, yo me baje la ultima (3.2) y no se si me esta
faltando algo, o que, pero no puedo dar con la solución en internet.
Al hacer el «cake migrations migrate» me dice lo siguiente:
using migration path E:RepoWebscakeApp1configMigrations
using seed path E:RepoWebscakeApp1configSeeds
using environment default
using adapter mysql
using database firstcakeapp
== 20160620211206 CreateAdminSeedMigration: migrating
Fatal
error: Class ‘FakerORMCakePHPPopulator’ not found in
E:RepoWebscakeApp1configMigrations20160620211206_create_admin_seed_migration.php
on line 12
Call Stack:
0.0007 122448 1. {main}() E:RepoWebscakeApp1bincake.php:0
0.0647 3297616 2. CakeConsoleShellDispatcher::run() E:RepoWebscakeApp1bincake.php:33
0.0917 3825456 3. CakeConsoleShellDispatcher->dispatch()
E:RepoWebscakeApp1vendorcakephpcakephpsrcConsoleShellDispatcher.php:127
0.0917 3825536 4. CakeConsoleShellDispatcher->_dispatch()
E:RepoWebscakeApp1vendorcakephpcakephpsrcConsoleShellDispatcher.php:181
0.0967 3871176 5.
MigrationsShellMigrationsShell->runCommand()
E:RepoWebscakeApp1vendorcakephpcakephpsrcConsoleShellDispatcher.php:217
0.0967 3871744 6. CakeConsoleShell->runCommand()
E:RepoWebscakeApp1vendorcakephpmigrationssrcShellMigrationsShell.php:130
0.1099 4002584 7.
call_user_func_array:{E:RepoWebscakeApp1vendorcakephpcakephpsrcConsoleShell.php:456}()
E:RepoWebscakeApp1vendorcakephpcakephpsrcConsoleShell.php:456
0.1100 4002928 8. MigrationsShellMigrationsShell->main()
E:RepoWebscakeApp1vendorcakephpcakephpsrcConsoleShell.php:456
0.1664 5270928 9. SymfonyComponentConsoleApplication->run()
E:RepoWebscakeApp1vendorcakephpmigrationssrcShellMigrationsShell.php:98
0.1749 5451792 10.
SymfonyComponentConsoleApplication->doRun()
E:RepoWebscakeApp1vendorsymfonyconsoleApplication.php:117
0.1756 5452256 11.
SymfonyComponentConsoleApplication->doRunCommand()
E:RepoWebscakeApp1vendorsymfonyconsoleApplication.php:186
0.1757 5452536 12.
SymfonyComponentConsoleCommandCommand->run()
E:RepoWebscakeApp1vendorsymfonyconsoleApplication.php:815
0.1800 5454584 13. MigrationsCommandMigrate->execute()
E:RepoWebscakeApp1vendorsymfonyconsoleCommandCommand.php:256
0.2249 5463808 14. MigrationsCommandMigrate->execute()
E:RepoWebscakeApp1vendorcakephpmigrationssrcCommandMigrate.php:58
0.2265 5464728 15. PhinxConsoleCommandMigrate->execute()
E:RepoWebscakeApp1vendorcakephpmigrationssrcConfigurationTrait.php:165
0.3209 6433392 16. PhinxMigrationManager->migrate()
E:RepoWebscakeApp1vendorrobmorganphinxsrcPhinxConsoleCommandMigrate.php:113
0.3478 6548976 17. PhinxMigrationManager->executeMigration()
E:RepoWebscakeApp1vendorrobmorganphinxsrcPhinxMigrationManager.php:285
0.3502 6549264 18.
PhinxMigrationManagerEnvironment->executeMigration()
E:RepoWebscakeApp1vendorrobmorganphinxsrcPhinxMigrationManager.php:309
0.3512 6549720 19. CreateAdminSeedMigration->up()
E:RepoWebscakeApp1vendorrobmorganphinxsrcPhinxMigrationManagerEnvironment.php:117
Y no he podido solucionar el que no me encuentre la clase populator, la cual si la busco «a mano» se encuentra en:
cakeApp1binvendorfzaninottofakersrcFakerORMCakePHPPopulator.php
Me esta faltando algun paso?
Desde ya muchas gracias, y saludos!
Hola Diego, quizá te falta crear la instancia a la clase Populator dentro del método up() . Puedes apoyarte del repositorio que comparto al final de la lección. Saludos!
$populator = new FakerORMCakePHPPopulator($faker);
Hola Edson, gracias por tu respuesta. Al final he podido dar con la solucion, y me parece acertado colaborar con otros que tengan el mismo problema acá para que los solucionen.
Lo que tuve que agregar, es el require_once ‘vendor/autoload.php’; Esto lo hice por supuesto, debajo de las lineas de «use»
Con esto pude utilizar el faker sin problemas, y entiendo que se deba a una actualizacion de cake 3.2 red velvet, ya que vos no has tenido que realizar este paso.
Nuevamente gracias, y excelentes videos, hace años he querido aprender cake y nunca he encontrado el material adecuado para hacerlo, hasta que di con tus videos.
Hola Diego, lo que pasa es que en la versión 3.1 aún no había una manera directa de generar registros y es por eso que lo hice tal como lo viste en la lección, ahora en la versión 3.2 incluso ya existe un directorio dedicado a los seeders. Voy a considerar hacer un tutorial extra con esta novedad para reforzar esta lección. Gracias por tu colaboración. Saludos!
Hola, excelente material y muchas gracias de antemano, hice la practica tal y como muestras en el video, para la tabla Users me funcionó perfectamente, pero al hacerlo para la tabla Bookmarks no inserta los datos a pesar de que no me muestra error en la consola.
C:wamp64wwwpocakebin>cake migrations migrate
Welcome to CakePHP v3.3.2 Console
—————————————————————
App : src
Path: C:wamp64wwwpocakesrc
PHP : 5.6.19
—————————————————————
using migration path C:wamp64wwwpocakeconfigMigrations
using seed path C:wamp64wwwpocakeconfigSeeds
using environment default
using adapter mysql
using database pocake
All Done. Took 0.0158s
using migration path C:wamp64wwwpocakeconfigMigrations
using seed path C:wamp64wwwpocakeconfigSeeds
Writing dump file
C:wamp64wwwpocakeconfigMigrationsschema-dump-default.lock
…Dump file
C:wamp64wwwpocakeconfigMigrationsschema-dump-default.lock
wassuccessfully written
Que puede estar sucediendo???