Aprovechá librerías y componentes de Laravel dentro de CI3 usando namespaces PSR-4.
Una ventaja de habilitar PSR-4 en CI3 es que podemos reutilizar componentes de Laravel (colecciones, helpers, validadores) sin migrar el proyecto. Es útil en etapas de transición o en equipos mixtos.
Ejemplo típico: usar illuminate/validation.
composer require illuminate/validation illuminate/filesystem
En application/services/Validation:
<?php
namespace Validation;
use Illuminate\Validation\Factory;
use Illuminate\Translation\Translator;
use Illuminate\Translation\ArrayLoader;
final class UserValidator
{
private Factory $validator;
public function __construct()
{
$loader = new ArrayLoader();
$translator = new Translator($loader, 'es');
$this->validator = new Factory($translator);
}
public function validate(array $input): array
{
$rules = [
'nombre' => 'required|min:3',
'email' => 'required|email'
];
$validator = $this->validator->make($input, $rules);
if ($validator->fails()) {
return $validator->errors()->toArray();
}
return [];
}
}
<?php
use Validation\UserValidator;
class Usuarios extends CI_Controller
{
public function crear()
{
$validator = new UserValidator();
$errores = $validator->validate($this->input->post());
if ($errores) {
echo json_encode(['errores' => $errores]);
return;
}
$this->db->insert('usuarios', $this->input->post());
echo json_encode(['ok' => true]);
}
}
Esto acerca herramientas modernas a un proyecto legacy sin necesidad de migrar todo el código.
Me dedico a crear soluciones web eficientes y a compartir mi conocimiento con la comunidad de desarrolladores.