Archives for posts with tag: php

Ich hatte gerade auf der Konsole (cli) auf einem Server den Fehler “set_time_limit(): Cannot set time limit in safe mode in …”, obwohl ich laut phpinfo() den Safe Mode ausgeschaltet hatte. Nach anfänglicher Verwunderung habe ich festgestellt, dass zwei verschiedene php.inis verwendet werden; eine für den Apache, eine für die Kommandozeile.

Unter Suse 10 findet man diese beispielsweise unter

Apache:
/etc/php5/apache2/php.ini

CMD:
/etc/php5/cli/php.ini

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.

Mein Skillset:

  • OOP
  • Java
  • Android
  • Facebook Entwicklung: FBML & Co.
  • PHP mit CodeIgniter, Zend Framework
  • Javascript / AJAX mit jQuery
  • MySQL
  • (X)HTML, CSS, XML, JSON etc.
  • SVN zum source code management (SCM)
  • Kontakt

    Mail: mail {at} benjaminmock.de
    Mobil: 0176 32077839