PHP, Zend Framework quickstart öğretici: Bu nasıl çalışır?

3 Cevap php

Here is a link to the tutorial that I am referring to.

Bu bana garip geliyor ... görünümü komut biz bu kodu vardır:

<?php echo $this->escape($entry->email) ?>

Bu defteri modeli ayarlanmış olan e-posta adresini gösterir. Ama model üzerinde özelliğidir $_email ve korunmaktadır. Biz $entry->getEmail(); yüzden bu bilgi çekerek nerede bu çalışma ya nasıl anlamıyorum demeyeceğiz. Ben çalıştığını biliyorum, ama ben sadece ne anlamıyorum.

3 Cevap

$email denilen hiçbir özelliği yoktur ve sınıfta bir __get sihirli bir yöntem varsa, o biri geçiyor.

Gerçekten de, bağlantılı sayfa alıntı:

__get() and __set() will provide a convenience mechanism for us to access the individual entry properties, and proxy to the other getters and setters. They also will help ensure that only properties we whitelist will be available in the object.

; Sihirli yöntemler Zend Framework oldukça çok kullanılır - PHP 5 sihirli yöntemler hakkında daha fazla bilgi edinmek için, this page of the manual okuyabilirsiniz ve diğer modern Düzenlemelerde de ben eklemek gerekir.

Tanımsız bir nitelik bir sınıf üzerinde erişildiğinde yöntemi çağrılır.

public function __get($name)
{
    $method = 'get' . $name;
    if (('mapper' == $name) || !method_exists($this, $method)) {
        throw new Exception('Invalid guestbook property');
    }
    return $this->$method();
}

Sırayla bir yöntem başka bir yöntem yönlendirir. Bu durumda, getEmail ().

Normalde erişilemez özellikleri erişilebilir sağlar $ giriş nesnesi içinde bir __get() yöntem muhtemelen yoktur.