スクリプトを実行する前に、つまり起動時にphpに定数を追加できるかどうか疑問に思いました。これが可能であれば、クラスなどでも行うことができますか?
私はphp用のプラグインを作成する方向で考えていましたが、もっと簡単な方法があるかもしれません。
すべてのスクリプトにファイルを含めるという意味ではありません。
前もって感謝します
私の知る限り定数ではありませんが、これは問題ありません。
.htaccess
SetEnv MYVAR "hello"
somefile.php
echo $_SERVER['MYVAR'];
詳細については、SetEnvのApacheドキュメントを参照してください。
質問に直接答えるには、2つのアプローチがあります。
auto_prepend_file
呼び出しを含むPHPファイルを自動的に含めるために使用しdefine
ます。
サーバー変数を設定するようにWebサーバーを構成します。
2番目の方が良いアプローチだと思います。ただし、プラグインのコンテキストでどちらも非常に役立つかどうかはわかりません。通常、ある種のクラスオートローダーは、そこに移動する方法、または単一のインクルードファイルを必要とする方法です。
私があなたの質問を正しく理解している場合、私がすることは、私include
の上の何よりも先にファイルを作成することですindex.php
。その同じファイルには、、、などの大量のファイルが含まれていconstants
ます。control verifications
initialization 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
そして、このテーマに関する記事。