Eğer URL'ler bir fragment id uygulanması hakkında gidebiliriz birden fazla yolu vardır. Aşağıda bazı seçenekler her biri için bazı artıları ve eksileri ile birlikte vardır.
Direct Add
Siz sadece url()
çağrısından sonra "#$fragment_id"
ekleyebilirsiniz. Inelegant, ama basit. (Sadece yani bir veya iki sayfa) çok sayfa çapa kullanmak istemiyorsanız, bu gitmek için yoludur.
Write a custom url()
helper
Sen url()
fragmanı kimliği için isteğe bağlı 5 argüman ekleme özel bir sürümünü yazabilirsiniz:
class My_View_Helper_Url extends Zend_View_Helper_Url
{
public function url(array $urlOptions = array(), $name = null,
$reset = false, $encode = true,
$fragment_id = null)
{
$uri = parent::url($urlOptions, $name, $reset, $encode);
if(!is_null($fragment_id)) {
$uri .= "#$fragment_id";
}
return $uri;
}
}
Bu şekilde, çapa (ve çapa / fragmanı id) bilgiler kesinlikle View bölge withing tutulur. Bu genel kullanım için iyidir, ancak varsayılan yol için biraz hantal alabilirsiniz. Ayrıca, bu hala çok bazı kullanımlar için sabit kodlanmış biraz.
Write a custom Route
class (Extreme)
Üçüncü bir seçenek olarak, Zend_Controller_Router_Route
sınıfı (es) özel bir sürümünü yazabilirsiniz, özellikle assemble($data, $reset, $encode)
yöntemi (match($path)
yöntem varsayılan fragmanı kimlikleri yok sayıyor .)
Bu yöntem kullanılarak, yalnızca araç kullanımı (bu yöntem herhangi bir değişkenin devre dışı parçası id temel için kullanılabilir) spesifik yolları ile sınırlıdır, özellikle de oldukça zor, ama çok yararlı olabilir.
Caveat
Parçası kimlikleri kullanılıyorsa belirli noktalar must dikkate alınmalıdır. Örneğin, sorgu dizeleri aksi halde, sorgu dizesi PHP tarafından görmezden, URI fragmanı id önüne var. Ancak, çoğu ZF uygulamaları sorgu dizeleri kullanımını önlemek eğilimindedir, bu yüzden bir sorun olmayabilir.