Nasıl Zend ile örnek bir konsol uygulaması yazabilirim?

3 Cevap php

Nasıl Zend ile örnek bir konsol uygulaması yazabilirim?

/Zend/Console/Getopt.php

Ben sadece -v gibi bir değer geçmek ve sürüm bilgileri alırsınız istiyorum.

Olarak giriş

prjectfolder/console/version.php -v

Çıktı:

Version 1.xxxxx

Nasıl send lib basit PHP ile Zend kodlayabiliriz yöntemleri içerir.

3 Cevap

Bu benim bir uygulama için CLI Arayüzü ele am nasıl küçük bir örneğidir. Bu benim Bootsrap'i ve Zend Autoloader dahil edilir. Daha iyi bir çözüm CLI Operasyonları Bootsrap'i (Sevk ve bu tür şeyler için gerek) değiştirmek için ama ben tembel bir adam değilim :-)

<?php
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application/'));
define('APPLICATION_ENVIRONMENT', 'development');

/**
 * Setup for includes
 */
set_include_path(
    APPLICATION_PATH . '/../library' . PATH_SEPARATOR .
    APPLICATION_PATH . '/../application/models' . PATH_SEPARATOR .
    APPLICATION_PATH . '/../application/extends'. PATH_SEPARATOR .
    get_include_path());


/**
 * Zend Autoloader
 */
require_once 'Zend/Loader/Autoloader.php';

$autoloader = Zend_Loader_Autoloader::getInstance();

/**
 * Register my Namespaces for the Autoloader
 */
$autoloader->registerNamespace('My_');
$autoloader->registerNamespace('Db_');


/**
 * Include my complete Bootstrap
 * @todo change when time is left
 */
require '../application/bootstrap.php';

/**
 * Setup the CLI Commands
 * ../application/cli.php --add
 * ../application/cli.php --scan
 * ..
 */
try {
    $opts = new Zend_Console_Getopt(
        array(
            'help'      => 'Displays usage information.',
            'add'       => 'Add the Feeds to the Pipe',
            'scan'      => 'Scan the Feeds in the Pipe',
            'que'       => 'Process the Pipe',
        )
    );

    $opts->parse();

} catch (Zend_Console_Getopt_Exception $e) {
    exit($e->getMessage() ."\n\n". $e->getUsageMessage());
}

if(isset($opts->help)) {
    echo $opts->getUsageMessage();
    exit;
}

/**
 * Action : add
 */
if(isset($opts->add)) {
    // do something
}

/**
 * Action : scan
 */
if(isset($opts->scan)) {
    // do something
}

/**
 * Action : que
 */
if(isset($opts->que)) {
    // do something
}

Ben bunun yerine http://dev.umpirsky.com/building-cli-apps-with-symfony-console-component/ Symfony Konsol Bileşen kullanmanızı öneririz

Eğer ihtiyacınız olan tüm detayları bulabilirsiniz ZF docs.