在 PHP 中使用 composer autoload 的命名空间
Namespace using composer autoload in PHP
我正在尝试使用 psr-4
和 composer 实现自动加载功能,但我收到此错误,即使我已经在索引中需要它。请查看下面的错误和代码:
错误
Fatal error: Class 'Blog\Classes\Database\Connection' not found in C:\wamp\www\blog-oop\index.php on line 7
代码
composer.json
{
"autoload": {
"psr-4": {
"Blog\": "app/classes/Database"
}
}
}
Connection.php
<?php
namespace Blog\Classes\Database;
class Connection{
}
index.php
<?php
require "vendor/autoload.php";
use Blog\Classes\Database\Connection;
$connection = new Connection;
结构
>app
>classes
>Database
>Connection.php
在你的composer.json
"Blog\": "app/classes/Database"
应该是
"Blog\": "app"
因为命名空间充当查找 class
的路径
我认为错误发生在作曲家json
而不是
"Blog\": "app/classes/Database"
应该是
"Blog\": "app/"
我的composer.json测试
{
"name": "test",
"description": "Test",
"autoload": {
"psr-4": {
"Blog\": "app/"
}
}
}
app/Classes/Database/Connection.php
<?php
namespace Blog\Classes\Database;
class Connection {
public function __construct()
{
print_r('Connection class was called');
}
}
结果:
Connection class was called
我正在尝试使用 psr-4
和 composer 实现自动加载功能,但我收到此错误,即使我已经在索引中需要它。请查看下面的错误和代码:
错误
Fatal error: Class 'Blog\Classes\Database\Connection' not found in C:\wamp\www\blog-oop\index.php on line 7
代码
composer.json
{
"autoload": {
"psr-4": {
"Blog\": "app/classes/Database"
}
}
}
Connection.php
<?php
namespace Blog\Classes\Database;
class Connection{
}
index.php
<?php
require "vendor/autoload.php";
use Blog\Classes\Database\Connection;
$connection = new Connection;
结构
>app
>classes
>Database
>Connection.php
在你的composer.json
"Blog\": "app/classes/Database"
应该是
"Blog\": "app"
因为命名空间充当查找 class
的路径我认为错误发生在作曲家json
而不是
"Blog\": "app/classes/Database"
应该是
"Blog\": "app/"
我的composer.json测试
{
"name": "test",
"description": "Test",
"autoload": {
"psr-4": {
"Blog\": "app/"
}
}
}
app/Classes/Database/Connection.php
<?php
namespace Blog\Classes\Database;
class Connection {
public function __construct()
{
print_r('Connection class was called');
}
}
结果:
Connection class was called