tp3.2.3 关于chdir导致namespace Event路径冲突的问题

echo $_SERVER['DOCUMENT_ROOT'] . '<br>';
echo getcwd().'<br>';
echo dirname(__FILE__);

chdir(dirname(__FILE__));

require_once("../thirdPay/OrderCreate.php");
require_once("../thirdPay/OrderQuery.php");
$rsa_helper = new RSAUtil(PayConfig::PRIVATE_KEY, PayConfig::PUBLIC_KEY);
$assasasasaEvent = new \BMGXXX\EventCCCCC\CCCCEvent();
echo $assasasasaEvent >get_MonthTable('dsds'). '<br>';


chdir会影响路事件的路径,导致命名空间的Event都找不到,原因就是工作目录发生了变化,切换了工作目录估计影响不仅仅是事件的路径。
很多包含路径都会被牵连,chdir这个函数真的要慎用
有人说chdir先切换,用完了再切换回来,这太不可控了,影响了很多约定的默认用法,如果真的想包含文件,尽量不要用cdir,使用下面的方法直接包含

=========== ======================== ================ ============================

$curDir = dirname(__FILE__) . '/';
require_once($curDir . "../thirdPay/OrderCreate.php");
require_once($curDir . "../thirdPay/OrderQuery.php");
$rsa_helper = new RSAUtil(PayConfig::PRIVATE_KEY, PayConfig::PUBLIC_KEY);

$assasasasaEvent = new \BMGXXX\EventCCCCC\CCCCEvent();
echo $assasasasaEvent >get_MonthTable('dsds'). '<br>';

 

posted @ 2024-09-19 12:43  奥雷连诺  阅读(1)  评论(0编辑  收藏  举报