Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Yasumi PHP库添加到Laravel(以Laravel方式)_Php_Laravel_Laravel 5.2 - Fatal编程技术网

将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,但这只是您知道的个人偏好。