使用 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-u-editor及其使用
Laravel笔记-使用composer搭建Laravel环境(开发工具phpStorm)