CodeIgniter auf der Konsole/Kommandozeile
CodeIgniter halt ich für ein geniales PHP-Framework. Daher benutze ich es für fast alle meine Projekte, auch für mein neustes Baby, ufashion.de.
Schade fand’ ich bisher immer nur, dass ich CodeIgniter nicht für Skripte verwenden konnte, die auf der Kommandozeile bzw. in der Konsole laufen. Daher habe ich mich gerade einmal auf die Suche gemacht um eine Möglichkeit zu finden, wie man CI doch auch auf der Konsole nutzen kann. Neben mehreren umständlichen Varianten bin ich auf die folgende Möglichkeit von phpstarter.net gestoßen, die schlicht, einfach und wirklich gut ist:
Man kopiert die index.php des Codeigniter-Frameworks in eine cli.php-Datei. Folgenden Code setzt man an den Anfang des Skripts:
#!/usr/local/bin/php
/**
* only a few lines of code will make the best web framework
* function on the command line
*/
/* we don't need to be limited by...normal limitations */
set_time_limit(0);
ini_set('memory_limit', '256M');
/* make sure this isn't being called by a web browser */
if (isset($_SERVER['REMOTE_ADDR'])) die('Permission denied.');
/* set some constants */
define('CMD', 1);
/* manually set the URI path based on command line arguments... */
unset($argv[0]); /* ...but not the first one */
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'] = '/' . implode('/', $argv) . '/';
Mit einem simplen Aufruf von
php cli.php controller methode
lässt sich nun jede beliebige Methode der Controller auf der Kommandozeile ausführen. Dieses Vorgehen wird mir in Zukunft sicherlich einiges an Zeit und Mühe sparen – wirklich eine feine Sache.
Mai 23rd, 2009 at 17:14
PERFEKT!
Genau das habe ich gesucht …