Nasıl Zend_Tool kendi iskelet / şablonu sağlamak için özelleştirmek olabilir?

3 Cevap php

Zend_Tool güzel, verilen bir isim ile bir proje oluşturur ve belirli bir yol.

Ama bir süre sonra, ben yardımcıları, eklentileri, doğrulayıcılarıyla, vb gibi, kendi araçları geliştirmeye başladı ..

(Tamam ve recommanded) olduğu, kütüphanede hepsini koymak.

Ama, ben vb nesne, db nesnesini, tercüme, benim eklentileri, yardımcıları başlatılması dahil olmak üzere, aynı önyükleme dosyası, benim proje başlatmak gerekir.

Bazı application.ini de yapılabilir.

Sonra, vb kendi jenerik application.ini, benim bootstrap içindeki bazı başlatma kodu, belki bazı dizin, yazabiliyor olmak istiyorum olurdu ..

Ne / Nasıl yaparsınız?

3 Cevap

Ben bir çözüm out-of-the-box proje için kullanılan içeriği / yapıları sağlamak gibi kütüphane / zend / Araç / Proje / Bağlam / Zf dosyaları düzenlemek olacaktır sanırım.

Ama bu doğru bir çözüm gibi gelmiyor. Dahası zaten aracı (zf.bat veya sh) sırayla aracı için işlevsellik sağlamak 'manifestoları' ve 'sağlayıcılar' için php inculde_path tüm dizinleri tarar benim sürekli araştırmalar bulduk.

Zend Geliştiriciler biri tarafından yazı Zend_Tool for the Developer sadece bazı şeyleri netleştirdi.

Manifests

İstediğiniz gibi birçok sağlayıcıları paket ve 'yük' olarak kullanılabilir.

Providers

Sırayla Sağlayıcıları CLI için gerçek kapları kullanmak istediğiniz ve tasarım 'denetleyicisi / eylem' tasarımına benzer komutları vardır. Sen arayarak komut isteminden belirli bir sınıfa (kontrolör) bir yöntem (eylem) çağırabilirsiniz:

zf <method-name> <class-name>

Bu sınıf Zend_Tool_Project_Provider_Abstract uzanır verilen

Daha sonra ben out-of-the-box düzeni kurma sorumlu sağlayıcıları alır Manifest bulunan öğrendim:

kütüphane \ Zend \ Aracı \ Proje \ Sağlayıcı \ Manifest.php

Bu dosyada aşağıdaki Sağlayıcıları aracı iade edilir:

public function getProviders()
{
    return array(
        new Zend_Tool_Project_Provider_Profile(),
        new Zend_Tool_Project_Provider_Project(),
        new Zend_Tool_Project_Provider_Controller(),
        new Zend_Tool_Project_Provider_Action(),
        new Zend_Tool_Project_Provider_View(),
        new Zend_Tool_Project_Provider_Module(),
        new Zend_Tool_Project_Provider_ProjectProvider()
    );
}

Bu tabii ki mevcut varsayılan CLI komutları.

Ayrıca o da açıktır ki you can have a lot of influence on what is created yöntemi _getDefaultProfile () kütüphane / Zend / Araç / Proje / Provider / Project oluşturulan varsayılan olarak kendi xml proje profili sağlayarak.

What I'm trying at the moment:

  • Varsayılan Sağlayıcıları ve kendi malzeme ile Manifest varsayılan geçersiz kılma ve kendi Proje Sağlayıcı _getDefaultProfile geçersiz () ve false yerine true bazı şeyler ayarlayın.

I'm having some problems with the CLI not accepting my Providers. I'll report back on the progress!

Eğer ihtiyacınız varsa zend araç sınıfları uzatabilirsiniz. Ama kütüphanede örneğin kendi Önyükleme sınıf var ve sadece değiştirmek için daha iyi olduğunu düşünüyorum class Boostrap extends Zend_Application_Boostrap_Bootstrap extends My_Bootstrap oluşturulur

Modüller proje düzeyinde kod yeniden kullanım için kullanılabilir:

http://framework.zend.com/manual/en/zend.controller.modular.html

Eğer mevcut bir işlevsellik benzer yeni bir proje varsa, mevcut proje için yeni bir modül ekleyin ve application.ini dosyasında / kapalı özel modüller açabilirsiniz. Modül özgü başlatma kendi göbeğini yer olabilir.

Ama bu tamamen basit değil ...

Ben birkaç ay önce çalıştım, Zend_Tool modül dizin yapısı oluşturma sorunları vardı ve ben elle oluşturmak zorunda kaldı. Ayrıca, (modül-özel yapılandırma dosyaları, birleştirilmiş navigasyon tanımları ve / veya özel dağıtım yapılandırmaları) gerektirebilir bazı özellikleri şu anda Zend Framework yerleşik değildir ve yazılı olması gerekir.

Benim kurulum için ben her dağıtım (uygulama foo.ini, uygulama bar.ini) için bir application.ini var. . Htaccess dosyasında belirlenen bir ortam değişkeni (SetEnv APP_DEPLOYMENT foo) kullanarak, uygun ini dosyası bootstrap (index.php) özel mantık yoluyla seçilir. Modülleri için genel yapılandırma Zend_Application_Resource_Modules özel bir alt sınıfında üzerinden yüklenen modül özgü yapılandırma dosyalarının içine konur.

Bir dağıtım işlemi herhangi bir gereksiz modülleri, siteye bağlı olarak kamu dosyaları ve / veya kütüphaneler dışlamak için çalıştırılabilir. Phing, Capistrano veya Ant bunun için iyidir.