将Yasumi PHP库添加到Laravel(以Laravel方式)
我想使用将Yasumi PHP库添加到Laravel(以Laravel方式),php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我想使用https://github.com/azuyalabs/yasumi在laravel应用程序中打包 我使用以下方法进行了安装: $composer需要azuyalabs/yasumi 现在,使用laravel软件包,在安装后,我将在config/app.php中注册服务提供者和别名(facades): 这个图书馆有自己的一些外观 将这个库集成到Laravel中的方法是什么 我是否应该创建一个新的服务提供商类并在其中注册Yasumi? 比如: class YasumiServicePro
https://github.com/azuyalabs/yasumi
在laravel应用程序中打包
我使用以下方法进行了安装:
$composer需要azuyalabs/yasumi
现在,使用laravel软件包,在安装后,我将在config/app.php
中注册服务提供者
和别名
(facades):
这个图书馆有自己的一些外观
将这个库集成到Laravel中的方法是什么
我是否应该创建一个新的服务提供商类并在其中注册Yasumi?
比如:
class YasumiServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
}
}
我不会在供应商文件夹中这样做,因为这会被覆盖,甚至有时会被替换。从我的评论展开: 分叉存储库并进行更改(注意,您始终可以将“自拉请求”从原始文件转到分叉文件) 更改完成后,在
composer.json
文件中使用此选项
{
"name": "...",
"type": "project",
"description": "...",
"repositories": [
{
"type": "vcs",
"url": "https://github.com/{YOUR GITHUB NAME}/yasumi"
}
],
"require": {
"php": ">=5.6.4",
"laravel/framework": "5.3.*",
"azuyalabs/yasumi": "dev-{NAME OF BRANCH IN FORK}"
},
...
注意:占位符正在使用{YOUR GITHUB NAME}
和{FORK中的分支名称}
注意:要使用Webhook同步fork,请参阅
另外,制作一份公关,以便其他人可以使用Laravel服务提供商。这里有一个更简单的方法 在
App\Providers\AppServiceProvider
public function register()
{
$this->app->singleton('yasumi', \Yasumi\Yasumi::create('USA', 2016));
}
然后在你的应用程序中,你可以使用
$holidays = app('yasumi'); // now the equivalent of = \Yasumi\Yasumi::create('USA', 2016)
然后继续进行
您甚至可以避免变量赋值,例如
foreach(app('yasumi')->getHolidayNames() as $name)
{
echo $name . PHP_EOL;
}
Fork it,进行更改,并使用composer来加载Fork而不是原始的。我也在考虑这个问题,但是我应该一直跟踪对原始包所做的更改。它不会自动更新。或者试试你的运气,做一个公关…进一步浏览我得到了这篇文章:这让我想知道它是否真的那么重要,加载为服务提供商或只是使用它的建议。我可以这样使用它。有什么理由为它注册一个新的服务提供商而不是仅仅使用它吗?你提到了Laravel way,我的回答提供了一些关于如何做到这一点的信息,在你的fork中创建ServiceProvider并从现在开始使用你的fork。我建议你做一个公关!当它被合并时,删除您的fork并使用原来的Laravel方式:),我不确定我是否会坚持使用Provider,但这只是您知道的个人偏好。