【问题标题】:Adding a non-laravel package to my Laravel project with composer使用 composer 将非 laravel 包添加到我的 Laravel 项目中
【发布时间】:2014-07-03 17:29:00
【问题描述】:

在使用 Laravel 时,我知道使用 composer 在我的项目中使用 3rd 方库的步骤:

  1. 将包添加到composer.json:

    "require": { "zizaco/confide": "3.2.x" }

  2. 运行composer update安装包

  3. 添加到config/app.php 中的提供者和别名数组

我正在尝试对highchartsphp 做同样的事情。通过 composer 安装很简单,但是没有关于如何在 Laravel 中使用这个包的说明。如何加载正确的文件以及如何实例化自述文件中描述的类?是否只是将其添加到提供程序和别名,然后在我想要的任何地方执行$chart = new HighChart(); 的情况?

【问题讨论】:

    标签: php laravel laravel-4 composer-php


    【解决方案1】:

    这不是 Laravel 包,所以你不需要设置 Service Provider 或 Alias,但这是一个 PHP 包,因为你使用 Composer 安装它,它已经自动加载,所以你可以:

    将包添加到您的 composer.json:

    {
        "require": {
            "ghunti/highcharts-php": "~2.0"
        }
    }
    

    运行

    composer dumpautoload
    

    并实例化它:

    $chart = new Ghunti\HighchartsPHP\Highchart();
    

    或者在你的 php 顶部使用它:

    use Ghunti\HighchartsPHP\Highchart;
    

    你应该能够:

    $chart = new Highchart(Highchart::HIGHSTOCK);
    

    您项目中的任何位置,它都应该可以工作。

    如果您喜欢这样使用它,您可以在app/config/app.php 中为其创建一个别名:

    'Highchart' => 'Ghunti\HighchartsPHP\Highchart'
    

    但是你仍然需要实例化它

    $chart = new Highchart();
    

    你不能像在 Laravel 中那样使用它

    Highchart::doWhatever();
    

    当然,除非您自己创建 ServiceProvider。

    【讨论】:

    • 尝试这个 Laravel 会返回一个 Class 'HighChart' not found 错误。我已经运行dump-autoload
    • 是的,这个库是命名空间的,只是为了展示如何使用它。
    • 是否可以为此命名空间添加别名,以便我可以引用类名?
    • 我明白了,所以 app.php 中的 aliases 数组不能使用,除非它是 Laravel 包?非常感谢。
    猜你喜欢
    • 2019-09-27
    • 2015-06-13
    • 2016-11-14
    • 2015-11-01
    • 2017-10-04
    • 2015-05-23
    • 2016-08-13
    • 1970-01-01
    • 2017-06-09
    相关资源
    最近更新 更多