我一直在寻找网络,在这个问题上没有运气.我在我的代码中使用了作曲家的自动加载composer.json:
"autoload": {
"psr-0": {"AppName": "src/"}
}
Run Code Online (Sandbox Code Playgroud)
但是我需要在比供应商文件夹更高的级别进行自动加载.
做这样的事情不起作用:
"autoload": {
"psr-0": {"AppName": "../src/"}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道修复或我如何做到这一点?
我正在使用composer(http://getcomposer.org/)来管理Symfony2(symfony v 2.1.3)中的已安装捆绑包.作曲家的版本是de3188c.
我有问题,当我将新的bundle添加到composer.json并执行它时,显示有关更新依赖项的消息,然后下载它们的时间非常少.
我在composer.json中有这些数据(见下文),执行时间大约是20分钟!互联网连接足够快我可以非常快速地下载大文件...
是否有任何技巧可以让它更快?
{
"name": "symfony/framework-standard-edition",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.1.*",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.0.*",
"twig/extensions": "1.0.*",
"symfony/assetic-bundle": "2.1.*",
"symfony/swiftmailer-bundle": "2.1.*",
"symfony/monolog-bundle": "2.1.*",
"sensio/distribution-bundle": "2.1.*",
"sensio/framework-extra-bundle": "2.1.*",
"sensio/generator-bundle": "2.1.*",
"jms/security-extra-bundle": "1.2.*",
"jms/di-extra-bundle": "1.1.*",
"doctrine/doctrine-fixtures-bundle": "dev-master",
"webignition/doctrine-migrations-bundle": "dev-master"
},
"scripts": {
"post-install-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
],
"post-update-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
]
},
"minimum-stability": …Run Code Online (Sandbox Code Playgroud) 我正在尝试将Prestissimo安装到Ubuntu 16.04服务器上,但这会导致错误:
$ composer global require "hirak/prestissimo:^0.3"
Changed current directory to /home/kramer65/.composer
[ErrorException]
file_put_contents(./composer.json): failed to open stream: Permission denied
require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...
Run Code Online (Sandbox Code Playgroud)
我以用户身份登录kramer65,因此我不知道为什么它无法写入我的主文件夹.我对a的正常反应permission denied是使用sudo,但作曲家总是说:
不要以root /超级用户身份运行Composer!有关详细信息,请参阅https://getcomposer.org/root
知道如何解决这个问题吗?
我刚刚通过Composer安装了Sebastian Bergmann的PHPUnit版本3.7.19,并编写了一个我想进行单元测试的课程.
我想让我的所有课程自动加载到每个单元测试中,而不必使用include或require在我的测试的顶部,但这证明是困难的!
这是我的目录结构的样子(尾部/斜杠表示目录,而不是文件):
我的composer.json文件包括以下内容:
"require": {
"phpunit/phpunit": "3.7.*",
"phpunit/phpunit-selenium": ">=1.2"
}
Run Code Online (Sandbox Code Playgroud)
我的returns.php类文件包括以下内容:
<?php
class Returning {
public $var;
function __construct(){
$this->var = 1;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我的returnsTest.php测试文件包括以下内容:
<?php
class ReturningTest extends PHPUnit_Framework_TestCase
{
protected $obj = null;
protected function setUp()
{
$this->obj = new Returning;
}
public function testExample()
{
$this->assertEquals(1, $this->obj->var); …Run Code Online (Sandbox Code Playgroud) 使用CakePHP文档,我试图使用composer安装3.0-beta2,但是我遇到了这个错误:
cakephp/cakephp 3.0.x-dev requires ext-intl * -> the requested PHP extension intl is missing from your system
但是,我确信安装了intl(它显示在phpinfo上).我正在使用PHP 5.4.33/Apache 2.4.10.1
提前感谢您提供的任何想法.
为什么我的作曲家依赖关系更新需要两分钟,即使没有更改?
一个流行的建议是添加--prefer-dist标志,我已将其附加到我的命令:
php composer.phar update --prefer-dist
Run Code Online (Sandbox Code Playgroud)
但这没有区别.下面是我的composer.json文件 - 我错过了一些明显的东西吗?
{
"name": "my-namespace/symfony",
"type": "project",
"description": "",
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.3.*",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.2.*",
"twig/extensions": "1.0.*",
"symfony/assetic-bundle": "2.3.*",
"symfony/monolog-bundle": "2.3.*",
"sensio/framework-extra-bundle": "2.3.*",
"sensio/generator-bundle": "2.3.*",
"sensio/distribution-bundle": "2.2.*",
"my-namespace/my-bundle": "1.0.*"
},
"repositories": [
{
"type": "vcs",
"url": "http://username:password@git.com/my-bundle.git"
}
],
"scripts": {
"post-install-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
],
"post-update-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
]
},
"config": {
"bin-dir": "bin"
},
"minimum-stability": "dev",
"extra": { …Run Code Online (Sandbox Code Playgroud) 我已经将"illuminate/html":"5.*"添加到composer.json并运行"composer update".
- Installing illuminate/html (v5.0.0)
Loading from cache
Run Code Online (Sandbox Code Playgroud)
我在网站的根目录中运行了此命令.我在/root/.composer ..和项目的根目录中修改了composer.json文件,但两者都没有区别.
这下载了这个类,似乎安装了.我在config/app.php中添加了以下内容
'Illuminate\Html\HtmlServiceProvider',
'Form' => 'Illuminate\Html\FormFacade',
'Html' => 'Illuminate\Html\HtmlFacade',
Run Code Online (Sandbox Code Playgroud)
我想我知道什么是错的,但我不知道如何解决它.我的安装位于'/ var/www/website'.我检查了文件路径,Html文件夹不存在.
"/var/www/website/vendor/laravel/framework/src/Illuminate/Html"
Run Code Online (Sandbox Code Playgroud)
我能够找到类文件,但在不同的目录中.
"/var/www/website/vendor/illuminate/html"
Run Code Online (Sandbox Code Playgroud)
我手动将文件复制到主laravel illuminate/html文件夹,但这也没有用.
我有一个用于laravel安装的composer文件,其中包含以下composer.json文件:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.1.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试添加哨兵包.在哨兵的网站上,它说我可以通过在composer.json文件中添加以下内容来安装它:
{
"require": {
"cartalyst/sentry": "2.0.*"
},
"minimum-stability": "dev"
}
Run Code Online (Sandbox Code Playgroud)
我尝试在当前laravel的末尾添加新的json对象,如下所示:
...
},
{
"require": …Run Code Online (Sandbox Code Playgroud) 当我composer --version在macOS终端中运行时,我收到以下错误:
PHP警告:preg_match():JIT编译失败:第755行的phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php中没有更多内存
Warning: preg_match(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 755
PHP Warning: preg_match(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 759
Warning: preg_match(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 759
PHP Warning: preg_split(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 654
Warning: preg_split(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 654
PHP Warning: preg_split(): JIT compilation failed: no more …Run Code Online (Sandbox Code Playgroud) 我们在您的服务器(最大5.3.5)和开发机器(最大5.5.9)上运行不同的PHP版本.
现在我们遇到了一个问题,我们做了一个"作曲家更新",以获得一些外部Bundles的最新版本.因为你的composer.json看起来像
"require": {
"php": ">=5.3.3",
.....
},
Run Code Online (Sandbox Code Playgroud)
我们得到一些需要PHP 5.5的Bundles.在我们的开发机器上没有问题,但在服务器上:(
是否有可能告诉作曲家要求5.3.3和5.3.5之间的PHP版本?或者最大可用版本?
我试过了
"require": {
"php": ">=5.3.3, <=5.3.5",
.....
},
Run Code Online (Sandbox Code Playgroud)
和
"require": {
"php": "<=5.3.5",
.....
},
Run Code Online (Sandbox Code Playgroud)
但两者都没有成功.我得到一个"在任何版本中都找不到请求的包php,包名中可能有拼写错误." 错误.
有任何想法吗?提前致谢
composer-php ×10
php ×8
laravel ×3
autoload ×2
symfony ×2
cakephp ×1
cakephp-3.0 ×1
dependencies ×1
jit ×1
json ×1
laravel-4 ×1
linux ×1
macos ×1
namespaces ×1
phpunit ×1
sudo ×1