2009-09-07 16 views
15

Bir yöntemin dönüş türü ipuçlarını belirtmek için doğru sözdizimi nedir? ÖrneğinPHP Yöntem için İade Türü İpuçları Belirtin

, böyle bir yöntemi vardır:

private static function ConstructPDOObject($dbname) 
{ 
     $hostname =self::HOSTNAME; 
     $username = self::USERNAME; 
     $password = self::PASSWORD; 
     $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password); 
     return $dbh; 
} 

Ve ben yukarıdaki yöntemi çağırmak zaman, IDE bana PDO için yöntemler gösterecektir, istiyorum.

İpucu ipucu nasıl eklenir?

cevap

23
Aptana içinde

, PDT, Zend Studio ve şöyle diğer IDE Diyelim ki php yöntemlerine Tür Dayatma ekleyebilirsiniz:

/** 
* Constructs a new PDO Object and returns it 
* 
* @param string $dbname name of the database to connect to 
* @return PDO connection to the database 
*/ 
private static function ConstructPDOObject($dbname) 
{ 
     $hostname =self::HOSTNAME; 
     $username = self::USERNAME; 
     $password = self::PASSWORD; 
     $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password); 
     return $dbh; 
} 

sınıf adı belirtmek için dokümantasyon bloğunun @return niteliğinden sonra yerleştirilir yöntemin dönüş tipi. Örneğin. Örnek yönteminiz durumunda, PDO, döndürülen sınıf adıdır. "Veritabanına bağlantı" ek açıklaması, diğer geliştiricilere döndürülen değerin anlamlı bir açıklamasını sağlamak için kullanılır, bu gerekli değildir ancak tavsiye edilir.

php yöntemlerinizi bu şekilde belgelemeyle ilgili en önemli şeylerden biri, daha sonra phpDocumentor veya doxygen kullanarak doküman oluşturabilmenizdir. İleride

+1

için Thx Graviton'dan daha benzer bir soruyla geliyordum: cevabınız, bir PHP belirtimi değil, IDE kod analizi yetenekleri kullanılarak yapılan bir çözümdür. Her neyse, +1 işe yaradığı için. – Benj

+0

Geri dönüş türünü döndürmeden önce ön dökümle kontrol edebilirsiniz, ancak yalnızca döndürülen sonucun belirtilen türe dökülüp dökülmeyeceğini kontrol eder. [Php.net/manual/en/language.types.type-juggling.php] adresine bakın (StackOverflow kullanıcısı DhruvPathak'a teşekkürler) – Benj

5

PHP, dönüş türlerinde tür ipuçlarını desteklemiyor. Belki de iade türünü bildiren bir dokümantasyon bloğu eklemelisiniz ve belki de IDE'niz bunu seçecektir (isteyip istemediğini bilmiyorum).

+0

! İpucu – CHaP

4

IDE ipucu yorumlar aracılığıyla yapılır. İşte benim ZEND Ön Eklentilerimden bir örnek.

<?php 

/** 
* Initializes Application wide authentication 
* 
* @author Lance Rushing 
* @since 2009-06-01 
* @param Zend_Session $session 
* @return Zend_Auth <--- gives IDE Hint 
*/ 
protected function initAuth($session) 
{ 
    $auth = Zend_Auth::getInstance(); 
    require_once 'AuthStorage.php'; 
    $auth->setStorage(new My_AuthStorage($session)); 
    return $auth; 
} 
17

, bu (kaynaktan alıntı) aşağıdaki yazım PHP 7için uygulanır:

function foo(): array { 
    return []; 
} 

PHP 7 itibariyle, hemen şimdi soruya cevap vermek için (2015 yılı sonuna etrafında salınan) yapmak mümkün olacaktır, aşağıdaki() örnek olarak:

<?php 

function ConstructPDOObject($hostname, $dbname, $username, $password): PDO 
{ 
    $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password); 
    return $dbh; 
} 

özellikleri de içinde ve arabirimler karşı tipi ipuçlarının sağlar; SOLID ilkelerine bağlı kalmakla ilgilenenler için.

Kaynak ve daha fazla bilgi: NetBeans 8.1 ile Onaylandı https://wiki.php.net/rfc/return_types

İlgili konular