En esta serie de publicaciones vamos a hacer un sistema de punto de venta con el Framework de PHP CodeIgniter 4
El sistema será igual al JCPOS que ya veníamos haciendo pero con todas las ventajas que ofrece CodeIgniter
Primero crearemos el proyecto con Composer
composer create-project codeigniter4/appstarter ci4jcpos
Creamos nuestra base de datos en phpmyadmin con el nombre ci4jcpos
CREATE SCHEMA ci4jcpos DEFAULT CHARACTER SET utf8 COLLATE utf8_spanish2_ci
Ahora instalamos la plantilla boilerplate el cual nos instalara la plantilla adminlte3 con el administrador de usuario auth, lo instalamos corriendo el siguiente comando dentro del proyecto
En mi caso yo deje en así app/config/database.php
public array $default = [
'DSN' => '',
'hostname' => '127.0.0.1',
'username' => 'root',
'password' => '',
'database' => 'ci4jcpos',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => true,
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
composer require julio101290/boilerplate
Ahora siguiente las instrucciones del paquete https://packagist.org/packages/julio101290/boilerplate corremos el comando migrate para auth
php spark auth:publish
Publish Migration? [y, n]: y
created: Database/Migrations/2017-11-20-223112_create_auth_tables.php
Remember to run `spark migrate -all` to migrate the database.
Publish Models? [y, n]: n
Publish Entities? [y, n]: n
Publish Controller? [y, n]: n
Publish Views? [y, n]: n
Publish Filters? [y, n]: n
Publish Config file? [y, n]: y
created: Config/Auth.php
Publish Language file? [y, n]: n
En app/config/auth.php modifcamos la matriz/arreglo de $views y la dejamos asi
public $views = [
'login' => 'julio101290\boilerplate\Views\Authentication\login',
'register' => 'julio101290\boilerplate\Views\Authentication\register',
'forgot' => 'julio101290\boilerplate\Views\Authentication\forgot',
'reset' => 'julio101290\boilerplate\Views\Authentication\reset',
'emailForgot' => 'julio101290\boilerplate\Views\Authentication\emails\forgot',
'emailActivation' => 'julio101290\boilerplate\Views\Authentication\emails\activation',
];
En app/config/filters.php en la matriz aliases agregamos los siguientes valores, ojo, no quitar los que estaban, solo agregar los que hacen falta
public $aliases = [
'login' => \Myth\Auth\Filters\LoginFilter::class,
'role' => \julio101290\boilerplate\Filters\RoleFilter::class,
'permission' => \julio101290\boilerplate\Filters\PermissionFilter::class,
];
Instalamos boilerplate con el siguiente comando
php spark boilerplate:install
En App/config/validation.php agregamos lo siguiente en la matriz de $$rulesSet
public $$ruleSets = [
\Myth\Auth\Authentication\Passwords\ValidationRules::class,
];
En App/entities/users.php en la matriz $cast lo dejamos así
protected $casts = [
'username' => 'string',
'email' => 'string',
'firstname' => 'string',
'lastname' => 'string',
'active' => 'boolean',
'force_pass_reset' => 'boolean',
];
En app/controller/home.php lo dejamos así para que entre directamente al administrador
<?php
namespace App\Controllers;
class Home extends BaseController
{
public function index()
{
return redirect()->to("/admin");
}
}
En app/config/constants.php al final del archivo le agregamos la siguiente constante para que nos permita debugear, una vez que este en producción se tiene que quitar
define("ENVIRONMENT","development");
En app/config/app.php le quita a la variable $indexPage el valor dejandolo en blanco, la variable defaultLocale y supportedLocales la dejamos con el valor “es”
public string $indexPage = '';
public string $defaultLocale = 'es';
public array $supportedLocales = ['en'];
En el archivo app/config/boilerplate.php asignamos el nombre de la app y en $i18n que es para el lenguaje de los datatables lo dejamos como Spanish

1 pingback