标签: composer-php

使用Composer的Autoload

我一直在寻找网络,在这个问题上没有运气.我在我的代码中使用了作曲家的自动加载composer.json:

"autoload": {
    "psr-0": {"AppName": "src/"}
}
Run Code Online (Sandbox Code Playgroud)

但是我需要在比供应商文件夹更高的级别进行自动加载.

做这样的事情不起作用:

"autoload": {
    "psr-0": {"AppName": "../src/"}
}
Run Code Online (Sandbox Code Playgroud)

有谁知道修复或我如何做到这一点?

php autoload composer-php

67
推荐指数
4
解决办法
14万
查看次数

为什么更新作曲家中的依赖关系这么慢?

我正在使用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)

dependencies symfony composer-php

67
推荐指数
4
解决办法
3万
查看次数

Composer:file_put_contents(./ composer.json):无法打开流:权限被拒绝

我正在尝试将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

知道如何解决这个问题吗?

php linux sudo laravel composer-php

65
推荐指数
6
解决办法
7万
查看次数

使用Composer和autoload.php在PHPUnit中自动加载类

我刚刚通过Composer安装了Sebastian Bergmann的PHPUnit版本3.7.19,并编写了一个我想进行单元测试的课程.

我想让我的所有课程自动加载到每个单元测试中,而不必使用include或require在我的测试的顶部,但这证明是困难的!

这是我的目录结构的样子(尾部/斜杠表示目录,而不是文件):

  • composer.json
  • composer.lock
  • composer.phar
  • LIB /
    • returning.php
  • 测试/
    • returningTest.php
  • 供应商/
    • 斌/
      • PHPUnit的
    • 作曲家/
    • PHPUnit的/
    • symfony的/
    • autoload.php

我的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)

php phpunit namespaces autoload composer-php

63
推荐指数
4
解决办法
6万
查看次数

CakePHP 3.0安装:系统缺少intl扩展

使用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

提前感谢您提供的任何想法.

cakephp composer-php cakephp-3.0

63
推荐指数
5
解决办法
10万
查看次数

尽管是--prefer-dist标志,但仍然无法更新作曲家依赖关系

为什么我的作曲家依赖关系更新需要两分钟,即使没有更改?

一个流行的建议是添加--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)

php symfony composer-php

62
推荐指数
3
解决办法
4万
查看次数

未找到Laravel 5 Class'form'

我已经将"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文件夹,但这也没有用.

php laravel composer-php

62
推荐指数
6
解决办法
15万
查看次数

Composer:所需的包装具有不同的最小稳定性水平

我有一个用于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)

php json laravel composer-php laravel-4

61
推荐指数
1
解决办法
3万
查看次数

错误在macOS上安装Composer(JIT编译失败)

当我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)

php macos jit composer-php

61
推荐指数
3
解决办法
3万
查看次数

强制编写器在版本X和版本Y之间需要PHP版本

我们在您的服务器(最大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,包名中可能有拼写错误." 错误.

有任何想法吗?提前致谢

php composer-php

60
推荐指数
5
解决办法
7万
查看次数