Composer自动加载完整示例?
Composer autoload full example?
我正在尝试将 all the peaces together 我发现有关在 composer 中自动加载 class 但我无法使其工作。我看到的每个例子都缺少一些部分。基本上它归结为 4 行的两个文件:
index.php
$loader = require 'vendor/autoload.php';
$loader->add('Vendor\', __DIR__.'/../app/');
new Vendor_Package_Obj();
app/Vendor/Package/Obj.php
class Obj {}
我还尝试了 psr-4 以及所有可以想到的文件夹和名称组合,用于 `Vendor Package Obj?但没有找到可行的解决方案。
如何使用这些标准中的任何一个使用 composer 自动加载文件?
根据 PSR-4,完全限定的 class 名称必须有一个顶级命名空间名称,也称为 "vendor namespace" 并且下划线在任何部分都没有特殊含义完全限定的 class 名称。
试试这个:
cd ~
mkdir -p testproj/src/MyApp/Package
cd testproj
composer init && composer update
使用以下内容创建您的 index.php:
<?php
$loader = require 'vendor/autoload.php';
$loader->add('MyApp\', __DIR__.'/src/');
$a = new MyApp\Package\Obj();
var_dump($a);
并把 Obj class (src/MyApp/Package/Obj.php) :
<?php
namespace MyApp\Package;
class Obj
{}
现在当您 运行 代码时:
php index.php
你应该得到这个作为输出:
class MyApp\Package\Obj#2 (0) {
}
目录脚手架也应如下所示:
testproj
├── composer.json
├── index.php
├── src
│ └── MyApp
│ └── Package
│ └── Obj.php
└── vendor
├── autoload.php
└── composer
├── ClassLoader.php
├── autoload_classmap.php
├── autoload_namespaces.php
├── autoload_psr4.php
└── autoload_real.php
我正在尝试将 all the peaces together 我发现有关在 composer 中自动加载 class 但我无法使其工作。我看到的每个例子都缺少一些部分。基本上它归结为 4 行的两个文件:
index.php
$loader = require 'vendor/autoload.php';
$loader->add('Vendor\', __DIR__.'/../app/');
new Vendor_Package_Obj();
app/Vendor/Package/Obj.php
class Obj {}
我还尝试了 psr-4 以及所有可以想到的文件夹和名称组合,用于 `Vendor Package Obj?但没有找到可行的解决方案。
如何使用这些标准中的任何一个使用 composer 自动加载文件?
根据 PSR-4,完全限定的 class 名称必须有一个顶级命名空间名称,也称为 "vendor namespace" 并且下划线在任何部分都没有特殊含义完全限定的 class 名称。
试试这个:
cd ~
mkdir -p testproj/src/MyApp/Package
cd testproj
composer init && composer update
使用以下内容创建您的 index.php:
<?php
$loader = require 'vendor/autoload.php';
$loader->add('MyApp\', __DIR__.'/src/');
$a = new MyApp\Package\Obj();
var_dump($a);
并把 Obj class (src/MyApp/Package/Obj.php) :
<?php
namespace MyApp\Package;
class Obj
{}
现在当您 运行 代码时:
php index.php
你应该得到这个作为输出:
class MyApp\Package\Obj#2 (0) {
}
目录脚手架也应如下所示:
testproj
├── composer.json
├── index.php
├── src
│ └── MyApp
│ └── Package
│ └── Obj.php
└── vendor
├── autoload.php
└── composer
├── ClassLoader.php
├── autoload_classmap.php
├── autoload_namespaces.php
├── autoload_psr4.php
└── autoload_real.php