0

スクリプトを実行する前に、つまり起動時にphpに定数を追加できるかどうか疑問に思いました。これが可能であれば、クラスなどでも行うことができますか?

私はphp用のプラグインを作成する方向で考えていましたが、もっと簡単な方法があるかもしれません。

すべてのスクリプトにファイルを含めるという意味ではありません。

前もって感謝します

4

3 に答える 3

3

私の知る限り定数ではありませんが、これは問題ありません。

.htaccess

SetEnv MYVAR "hello"

somefile.php

echo $_SERVER['MYVAR']; 

詳細については、SetEnvのApacheドキュメントを参照してください。

于 2012-05-22T23:30:33.397 に答える
1

質問に直接答えるには、2つのアプローチがあります。

  1. auto_prepend_file呼び出しを含むPHPファイルを自動的に含めるために使用しdefineます。

  2. サーバー変数を設定するようにWebサーバーを構成します。

2番目の方が良いアプローチだと思います。ただし、プラグインのコンテキストでどちらも非常に役立つかどうかはわかりません。通常、ある種のクラスオートローダーは、そこに移動する方法、または単一のインクルードファイルを必要とする方法です。

于 2012-05-22T23:32:54.157 に答える
0

私があなたの質問を正しく理解している場合、私がすることは、私includeの上の何よりも先にファイルを作成することですindex.php。その同じファイルには、、、などの大量のファイルが含まれていconstantsます。control verificationsinitialization for the DB object

例えば、

INSIDE index.php

<?php

$moduleRoot = dirname(__FILE__);
require_once($moduleRoot."/components/inc/inc.php");

// continue to render the web page and perform as usual

?>

inc.phpの内部

// When in development, all errors should be presented
// Comment this two lines when in production
error_reporting(E_ALL);
ini_set('display_errors', '1');

// Website id for this project
// the website must be present in the table site in order to get
// the configurations and records that belong to this website
define("CONF_SITE_ID",1);

// Domain path where the project is located
// Should be like the access used on the browser
$serverDomain = $_SERVER["HTTP_HOST"];
$serverAccess = (!empty($_SERVER['HTTPS'])) ? ('https://') : ('http://');
$serverRoot = dirname(__FILE__);
define("CONF_DOMAIN", $serverAccess.$serverDomain);

// etc ...

編集済み

複数の「スタートアップ」ファイルがあり、それらすべてを呼び出す必要があるため、PHP 5.3.0の時点でinc.php最適な選択肢のようです。ここで、それについて読むことができます。.user.ini

そして、このテーマに関する記事

于 2012-05-22T23:34:20.200 に答える