2009-11-23 9 views
6

これはindex.phpのコードで、<?phpのみですが、はありません。何らかの理由でこのコードを見るのは初めてですか?DrupalでPHPタグが閉じられないのはなぜですか?

<?php 
// $Id: index.php,v 1.94 2007/12/26 08:46:48 dries Exp $ 

/** 
* @file 
* The PHP page that serves all page requests on a Drupal installation. 
* 
* The routines here dispatch control to the appropriate handler, which then 
* prints the appropriate page. 
* 
* All Drupal code is released under the GNU General Public License. 
* See COPYRIGHT.txt and LICENSE.txt. 
*/ 

require_once './includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 

$return = menu_execute_active_handler(); 

// Menu status constants are integers; page content is a string. 
if (is_int($return)) { 
    switch ($return) { 
    case MENU_NOT_FOUND: 
     drupal_not_found(); 
     break; 
    case MENU_ACCESS_DENIED: 
     drupal_access_denied(); 
     break; 
    case MENU_SITE_OFFLINE: 
     drupal_site_offline(); 
     break; 
    } 
} 
elseif (isset($return)) { 
    // Print any value (including an empty string) except NULL or undefined: 
    print theme('page', $return); 
} 

drupal_page_footer(); 

答えて

12

終了タグを省略すると、応答に後続の空白が誤って挿入されることがなくなります。

Zendのようないくつかのフレームワークでは、一般的なコーディング慣行があります。

+6

知られていない人のために、間違った空白が欲しくない理由は、すでに送られてきたヘッダーで終わる非常に速い方法だということが言えるはずです。 –

+0

[PSR-2](http://www.php-fig.org/psr/psr-2/)コーディング標準に準拠するフレームワーク/ライブラリでも使用されています。 –

10

PHP終了タグを省略すると、Drupal Coding Standardsの一部です。

Drupal 4.7以来、コードファイルの最後の?>は意図的に省略されています。これには、モジュールおよびインクルードファイルが含まれます。この理由は、のようにまとめることができますそれを削除する

  • エラー、XHTML/XMLの検証の問題、およびその他の問題「が既に送られたヘッダ」を引き起こす可能性がありますファイルの末尾に不要な空白の可能性を排除します。
  • closing delimiter at the end of a file is optional
  • PHP.netでは、ファイルの最後から区切り記号(例:prepend.inc)を削除しているため、「ベストプラクティス」と見なすことができます。
関連する問題