Zend Framework tabanlı kütüphanede sınıflar gerektiren

2 Cevap php

Basit bir soru. Neden require_once, bir dosya içinde kullanmak sınıfları dahil etmek için kullanabileceğiniz? Ben genişleten bir sınıf oluşturmak Örneğin, Zend_Db_Table_Abstract, ben gerçekten need sınıf bildirimi dosyasında bu var değil mi:

require_once "Zend/Db/Table/Select.php";

Onlar zaten otomatik yükleyici tarafından dahil edilmiştir. Açıkça "ithalatını" ilan için bir performans artışı var mı? Bu birim test için mi?

2 Cevap

Basit Cevap: autoloader kullanmıyorsanız, işlevselliği kırmak olmaz.

Onun gerekli değil size autoloader kullanarak olacak bir gerçeği biliyorum eğer projede bunu yapmak, ama siz de diğer geliştiriciler tarafından kullanılacak (Zend gibi) bir çerçeve üzerinde çalışıyor iseniz, yeniden yapmak isteyecektir -kullanılabilirlik uyumluluk sorunları az olan, bu nedenle gerçekten açık bağımlılıkları gerektirir gerekir.

Başka bir yararı da sınıfları pek çok diğer sınıflara bağımlı hale geliyor gördüğünüz yardımcı olmasıdır. Bu nesneleri tasarımı yaparken bir minimumda coupling tutmanıza yardımcı olur.

Zend/Db/Table/Select.php bir örnek

/**
 * @see Zend_Db_Select
 */
require_once 'Zend/Db/Select.php';


/**
 * @see Zend_Db_Table_Abstract
 */
require_once 'Zend/Db/Table/Abstract.php';

Siz "/ / Require_once" Require_oncenin ile "require_oncenin" değiştirerek IDE bu çağrıların kurtulabilirsiniz sadece sınıf yükleme için kullanılmalıdır. Diğer, $file = include "test.php";, bunu kullanmayın (ya da kullanmak gerekmez) dosyası gibi bir dizi ekleme örneğin.