Ejecutar CodeIgniter desde terminal

Seguimos con los artículos y tutoriales de CodeIgniter 4.X. En esta ocasión veremos cómo ejecutar órdenes de CodeIgniter desde un terminal del servidor.

Tutorial CodeIgniter

Artículo añadido a nuestro listado de Tutoriales CodeIgniter 4 en español.

CodeIgniter funcionamiento normal

Supongamos que tenemos nuestra aplicación en https://miaplicacion.com

Lo normal es que creemos un controlador en nuestra aplicación. Pongamos el ejemplo:

https://miaplicacion.com/app/Controllers/Productos.php

Este controlador, dentro del código tendrá la función en cuestión. Sigamos con el ejemplo:

<?php namespace App\Controllers;

use CodeIgniter\Controller;
use App\Models\ProductosModel;

/**
 * Class Productos
 * @package CodeIgniter
 */

class Productos extends BaseController
{
  public function __construct()
  {
  ...
  }

  public function listar()
  {
  ...
  }
}

Y cuando lo queremos ejecutar desde el navegador, sólo tenemos que poner en la barra de direcciones:

https://miaplicacion.com/productos/listar

De esa manera, se ejecutará la función listar del controlador productos.

Pero vamos ahora a la cuestión. Y si quiero ejecutarlo desde la linea de comandos de un terminal, y no desde el navegador?

Ejecutar CodeIgniter desde consola

Lo haremos ejecutando php, y le passamos el fichero index.php con el controlador y la función pública:

$ cd /carpeta/a/nuestro/proyecto/public
$ php index.php productos listar

Qué pasaria si la función debe recibidr parámetros?

$ cd /carpeta/a/nuestro/proyecto/public
$ php index.php productos listar "ascendente"

Pues que lo ponemos al final entre comillas dobles.

Espero que os sea de utilidad y podáis ejecutar controladores de CodeIgniter desde el terminal.

Hay cosas que damos por hechas, y podría ser que en vuestro servidor no lo fueran. Por ejemplo, la llamada a php desde cualquier carpeta, tener todos los permisos correctos en las carpetas, que tenéis mod_rewirte activo y se puede consultar desde url amigables…


Más información

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

*