使用 composer 将非 laravel 包添加到我的 Laravel 项目中

Posted

技术标签:

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

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

    将包添加到composer.json:

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

    运行composer update安装包

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

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

【问题讨论】:

【参考方案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 包?非常感谢。

以上是关于使用 composer 将非 laravel 包添加到我的 Laravel 项目中的主要内容,如果未能解决你的问题,请参考以下文章

没有composer可以安装或者正常使用laravel么

为啥我不能使用 composer 创建 Laravel 项目?

composer安装laravel-u-editor及其使用

Laravel笔记-使用composer搭建Laravel环境(开发工具phpStorm)

Laravel笔记-使用composer搭建Laravel环境(开发工具phpStorm)

Laravel 5.2 - 使用 composer 和 git bash 安装 laravel 时出错