SORU
24 ŞUBAT 2010, ÇARŞAMBA


Çalışan komut satırından Çalışabilir Çerçevesinde bir eylem

Çalışabilir Çerçevesinde bir eylem çalıştırmak için bazı dosyaları, komut satırından oluşturmak istiyorum. Bu mümkün ve ne kadar fazla ZF kullanarak varolan bir Web projem için ihtiyacım olsun ki?

Teşekkürler!

CEVAP
24 ŞUBAT 2010, ÇARŞAMBA


Aslında düşündüğünüzden çok daha kolay. Uygulama bileşenleri ve mevcut yapılandırmaları/bootstrap HTTP isteği içinde çağrılan MVC ve ağırlık yığın gereksiz kaçınarak CLİ komut ile yeniden olabilir. Bu wget kullanarak bir avantajdır.

Senin gibi senaryonu başlayacak ortak index.php:

<?php

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH',
              realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV',
              (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
                                         : 'production'));

require_once 'Zend/Application.php';
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/config.php'
);

//only load resources we need for script, in this case db and mail
$application->getBootstrap()->bootstrap(array('db', 'mail'));

Sonra bir MVC uygulamasında yaptığınız gibi ZF kaynaklarını kullanmaya devam edebilirsiniz:

$db = $application->getBootstrap()->getResource('db');

$row = $db->fetchRow('SELECT * FROM something');

Eğer CLİ komut için yapılandırılabilir değişkenleri eklemek isterseniz, Zend_Console_Getopt bir göz atın

Eğer siz de MVC uygulamalarında çağıran ortak bir kod varsa, bir nesne olarak tamamlayan ve MVC ve komut satırı uygulamaları, hem de o nesnenin yöntemleri çağırmak bak. Bu genel olarak iyi bir uygulamadır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GoProTutorials

    GoProTutoria

    18 NİSAN 2011
  • Jay Will

    Jay Will

    19 NİSAN 2006
  • MrRandomSong

    MrRandomSong

    29 Kasım 2009