Php 使用composer autoload自动加载类映射
目录:Php 使用composer autoload自动加载类映射,php,composer-php,autoload,Php,Composer Php,Autoload,目录: myproject: src: MyProject: Foo: Foo.php 在文件autoload_namespaces.php中 return array( 'MyProject' => array($vendorDir . '/myproject/src'), ); 如果你看起来像这样: class Bar extends MyProjext\Foo\Foo { } // You may n
myproject:
src:
MyProject:
Foo:
Foo.php
在文件autoload_namespaces.php中
return array(
'MyProject' => array($vendorDir . '/myproject/src'),
);
如果你看起来像这样:
class Bar extends MyProjext\Foo\Foo
{
}
// You may need to adjust the path
require_once("MyProject/Foo/Foo.php");
class Bar extends Foo
{
}
或:
它正在工作,但我不想使用'use MyProjext\Foo\Foo;'或“扩展MyProjext\Foo\Foo”
class Bar extends Foo
{
}
这是一个错误:“找不到Foo类”,有人可以帮我吗?你说:
它正在工作,但我不想使用'use MyProjext\Foo\Foo;'或
'扩展MyProjext\Foo\Foo'
class Bar extends Foo
{
}
这意味着这项工作:
use MyProject\Foo\Foo;
class Bar extends Foo
{
}
但这不起作用(你想让它起作用):
它不起作用,因为类Bar
试图从全局范围扩展类Foo
,但是类Foo
在MyProject\Foo
下声明,并且它存储在MyProject/Foo
目录中,因此发生了错误,并且符合逻辑
如果要使用此代码(不带任何命名空间
):
然后确保类Foo
在全局命名空间中可用,并找到类似namespace MyProject\Foo的行在Foo
类声明之前添加code>,删除该行,并在使用类Foo
创建类栏之前(通过扩展)包含该类。所以,它可能看起来像这样:
class Bar extends MyProjext\Foo\Foo
{
}
// You may need to adjust the path
require_once("MyProject/Foo/Foo.php");
class Bar extends Foo
{
}
使用名称空间
更好,因此请尝试坚持使用它,如果不使用名称空间
您当前的自动加载
技术可能会失败,除非您在不使用名称空间的情况下重写它,条的名称空间是什么
类?类条没有名称空间,就像在laravel中一样,类BaseController扩展了控制器,类BaseController没有名称空间,类控制器名称空间是从