不知何故,我无法让自动加载正常工作。我正在为phpunit使用以下引导文件。
<?php
$loader = require __DIR__ . "/../vendor/autoload.php";
$loader->add('myproj\\example\\', __DIR__ . "/../example/");
$loader->add('myproj\\', __DIR__ . "/../src/");
var_dump($loader->getPrefixes());
这个var_dump
的输出显示,据我所知,注册应该是正常的。
Running "phpunit:test" (phpunit) task
Starting phpunit (target: test) in test
array(40) {
["phpDocumentor\Composer"]=>
array(2) {
[0]=>
string(70) "/data/myproj/vendor/phpdocumentor/unified-asset-installer/src"
[1]=>
string(76) "/data/myproj/vendor/phpdocumentor/unified-asset-installer/test/unit"
}
["phpDocumentor"]=>
array(10) {
[0]=>
string(66) "/data/myproj/vendor/phpdocumentor/reflection-docblock/src"
[1]=>
string(57) "/data/myproj/vendor/phpdocumentor/reflection/src"
[2]=>
string(64) "/data/myproj/vendor/phpdocumentor/reflection/tests/unit"
[3]=>
string(65) "/data/myproj/vendor/phpdocumentor/reflection/tests/mocks"
[4]=>
string(55) "/data/myproj/vendor/phpdocumentor/graphviz/src"
[5]=>
string(62) "/data/myproj/vendor/phpdocumentor/graphviz/tests/unit"
[6]=>
string(54) "/data/myproj/vendor/phpdocumentor/fileset/src"
[7]=>
string(61) "/data/myproj/vendor/phpdocumentor/fileset/tests/unit"
[8]=>
string(60) "/data/myproj/vendor/phpdocumentor/phpdocumentor/src"
[9]=>
string(67) "/data/myproj/vendor/phpdocumentor/phpdocumentor/tests/unit"
}
["Zend\Stdlib\"]=>
array(1) {
[0]=>
string(54) "/data/myproj/vendor/zendframework/zend-stdlib"
}
["Zend\ServiceManager\"]=>
array(1) {
[0]=>
string(62) "/data/myproj/vendor/zendframework/zend-servicemanager"
}
["Zend\Serializer\"]=>
array(1) {
[0]=>
string(58) "/data/myproj/vendor/zendframework/zend-serializer"
}
["Zend\Math\"]=>
array(1) {
[0]=>
string(52) "/data/myproj/vendor/zendframework/zend-math"
}
["Zend\Json\"]=>
array(1) {
[0]=>
string(52) "/data/myproj/vendor/zendframework/zend-json"
}
["Zend\I18n\"]=>
array(1) {
[0]=>
string(52) "/data/myproj/vendor/zendframework/zend-i18n"
}
["Zend\Filter\"]=>
array(1) {
[0]=>
string(54) "/data/myproj/vendor/zendframework/zend-filter"
}
["Zend\EventManager\"]=>
array(1) {
[0]=>
string(60) "/data/myproj/vendor/zendframework/zend-eventmanager"
}
["Zend\Config\"]=>
array(1) {
[0]=>
string(54) "/data/myproj/vendor/zendframework/zend-config"
}
["Zend\Cache\"]=>
array(1) {
[0]=>
string(53) "/data/myproj/vendor/zendframework/zend-cache"
}
["Twig_"]=>
array(1) {
[0]=>
string(42) "/data/myproj/vendor/twig/twig/lib"
}
["Symfony\Component\Yaml\"]=>
array(1) {
[0]=>
string(41) "/data/myproj/vendor/symfony/yaml"
}
["Symfony\Component\Validator\"]=>
array(1) {
[0]=>
string(46) "/data/myproj/vendor/symfony/validator"
}
["Symfony\Component\Translation\"]=>
array(1) {
[0]=>
string(48) "/data/myproj/vendor/symfony/translation"
}
["Symfony\Component\Stopwatch\"]=>
array(1) {
[0]=>
string(46) "/data/myproj/vendor/symfony/stopwatch"
}
["Symfony\Component\Process\"]=>
array(1) {
[0]=>
string(44) "/data/myproj/vendor/symfony/process"
}
["Symfony\Component\Finder\"]=>
array(1) {
[0]=>
string(43) "/data/myproj/vendor/symfony/finder"
}
["Symfony\Component\Filesystem\"]=>
array(1) {
[0]=>
string(47) "/data/myproj/vendor/symfony/filesystem"
}
["Symfony\Component\EventDispatcher\"]=>
array(1) {
[0]=>
string(53) "/data/myproj/vendor/symfony/event-dispatcher"
}
["Symfony\Component\Console\"]=>
array(1) {
[0]=>
string(44) "/data/myproj/vendor/symfony/console"
}
["Symfony\Component\Config\"]=>
array(1) {
[0]=>
string(43) "/data/myproj/vendor/symfony/config"
}
["Psr\Log\"]=>
array(1) {
[0]=>
string(36) "/data/myproj/vendor/psr/log"
}
["Pimple"]=>
array(1) {
[0]=>
string(46) "/data/myproj/vendor/pimple/pimple/lib"
}
["PhpOption\"]=>
array(1) {
[0]=>
string(52) "/data/myproj/vendor/phpoption/phpoption/src"
}
["PhpCollection"]=>
array(1) {
[0]=>
string(60) "/data/myproj/vendor/phpcollection/phpcollection/src"
}
["Parsedown"]=>
array(1) {
[0]=>
string(45) "/data/myproj/vendor/erusev/parsedown"
}
["PHPParser"]=>
array(1) {
[0]=>
string(49) "/data/myproj/vendor/nikic/php-parser/lib"
}
["Metadata\"]=>
array(1) {
[0]=>
string(45) "/data/myproj/vendor/jms/metadata/src"
}
["Knp\Menu\"]=>
array(1) {
[0]=>
string(49) "/data/myproj/vendor/knplabs/knp-menu/src"
}
["JMS\Serializer"]=>
array(1) {
[0]=>
string(47) "/data/myproj/vendor/jms/serializer/src"
}
["JMS\"]=>
array(1) {
[0]=>
string(47) "/data/myproj/vendor/jms/parser-lib/src"
}
["Doctrine\Common\Lexer\"]=>
array(1) {
[0]=>
string(47) "/data/myproj/vendor/doctrine/lexer/lib"
}
["Doctrine\Common\Annotations\"]=>
array(1) {
[0]=>
string(53) "/data/myproj/vendor/doctrine/annotations/lib"
}
["Cilex\Provider\Console"]=>
array(1) {
[0]=>
string(63) "/data/myproj/vendor/cilex/console-service-provider/src"
}
["Cilex\Provider"]=>
array(1) {
[0]=>
string(60) "/data/myproj/vendor/phpdocumentor/phpdocumentor/src"
}
["Cilex"]=>
array(1) {
[0]=>
string(44) "/data/myproj/vendor/cilex/cilex/src"
}
["myproj\example\"]=>
array(1) {
[0]=>
string(38) "/data/myproj/test/../example/"
}
["myproj\"]=>
array(1) {
[0]=>
string(34) "/data/myproj/test/../src/"
}
}
不知怎的,我犯了以下错误。
PHPUnit 4.1.4 by Sebastian Bergmann.
Fatal error: Command failed: PHP Fatal error: Class 'myproj\example\NotificationCountChangedEvent' not found in /data/myproj/test/unit/DefaultDomainEventTest.php on line 14
在myproj文件夹src/test/unit/-DefaultDomainEventTest中,我的文件夹结构如下所示。php-bootstrap。php示例/-NotificationCountChangedEvent。php
NotificationCountChangedEvent.php具有命名空间。src/
中的所有类也以命名空间myproj
开始,然后对于每个子文件夹,我使用子命名空间的文件夹名称。
我遗漏了什么/为什么这不起作用。
使用以下引导解决了这个问题。请注意addPsr4
方法而不是add
方法。
<?php
$loader = require realpath(__DIR__ . "/../vendor/autoload.php");
$loader->addPsr4('bkcqrs\\example\\', realpath(__DIR__ . "/../example/") . "/", true);
$loader->addPsr4('bkcqrs\\', realpath(__DIR__ . "/../src/") . "/", true);
我按照作曲家的说明,成功安装了作曲家。我想使用Tumblr全新的php api客户端。 我的文件夹结构: : : 使用也非常有效。但是当执行找不到该类。 致命错误:类'Tumblr\API\Client'未在第9行的[...]/htdocs/Tumblr/myfile.php中找到
我正在使用一些phpunit测试类尝试composer autoload,但我似乎无法让它工作。当我从命令行运行phpunit时,我得到以下错误:“PHP致命错误:Class…notfound”。 我将提供所有的结构和文件信息。我可以,所以希望有人能发现我的错误。 结构(精简为相关文件): composer.json phpunit.xml 测试/功能/基本测试用例。php 测试/功能/主页测试。
其实我是新的PHP。我在一个几乎是空的文件夹中运行这个(实际上是按照劳拉-cast教程:用TDD设计一个流畅的应用编程接口)。 我的目录结构看起来像 src 表情。php 表达测试。php 内部作曲家。json: 内部表达测试。php: 内心的表达。php 然后我运行composer dump autoload并运行phpunit,但仍然得到: 我的语法有问题吗?我对作曲家的理解是非常基本的。提前
文件自动加载_psr4。php不包含“autoloaddev”部分的名称空间,仅包含“autoload”部分的名称空间。 当我的作曲家。json读取 然后我跑了 My/vendor/composer/autoload_prs4。php文件显示为 谢谢
我正在更新一个遗留的PHP项目来使用作曲家,并实现PHPUnit。不幸的是,我遇到了一些问题。运行PHPUnit时 致命错误:未找到类“PHPUnit\u Framework\u TestCase” 正在执行的命令行 我使用git-bash运行它。从可视化工作室代码执行给出了相同的结果。我已经阅读,实现了PHPUnit中使用作曲家和autoload.php自动加载类中描述的问题
我正在使用composer在我的项目中包含一个私有包,其中包含一些我将使用PHPUnit进行测试的类。包的大部分被正确地自动加载,我可以从单元测试中调用类,但是任何与它所在的目录命名相同的类都会抛出“未找到类”错误。 存储库符合psr-0,位于https://github.com/DeschutesDesignGroupLLC/IPS-Source 文件结构示例投掷错误: 调用