最近开始学习composer的自动加载, 做了一个小例子。
目录结构:
index.php
include "./vendor/autoload.php";
\core\Bootstrap::run();
composer.json
{
"name": "manbudezhu/demo",
"description": "composer test",
"type": "project",
"require": {},
"license": "yxg",
"authors": [
{
"name": "xiaog",
"email": "manbudezhu@163.com"
}
],
"autoload":{
"files":["core/functions.php"],
"psr-4":{
"core\\":"core",
"web\\":"web"
}
}
}
bootstrap.php
namespace core;
class Bootstrap{
public static function run(){
self::parseUrl();
}
public static function parseUrl(){
echo 'abcd';
\dd('abc');
}
}
functions.php
function dd($data){
echo "<pre>".print_r($data,true)."</pre>";
}
bootstrap.php中的\dd('abc');语句报错,提示: Call to undefined function dd().我哪块有问题了,为啥functions.php的dd函数没有被载入.
还有composer的自动载入本地的文件,需不需要网络支持了?
我运行没问题。把dd前的\去掉试试,要不就是PHP没装好或者版本太低。
看看composer目录的 autoload_static.php有没有将你的functions.php引进去
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。