Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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
Php Laravel 4.1从包依赖项运行迁移和更新配置_Php_Laravel_Migration_Package_Config - Fatal编程技术网

Php Laravel 4.1从包依赖项运行迁移和更新配置

Php Laravel 4.1从包依赖项运行迁移和更新配置,php,laravel,migration,package,config,Php,Laravel,Migration,Package,Config,我正在开发一个使用。 为了安装,我必须运行迁移并发布其配置: php artisan migrate --package=cartalyst/sentry php artisan config:publish cartalyst/sentry 我想让我的包的用户只需为我自己的包运行迁移和发布配置,而不必为Sentry 2或我可能需要的任何其他包运行迁移和发布配置 有没有办法做到这一点?到底是应该这样做,还是应该让我的用户为每个包运行迁移/发布会话 谢谢 编辑: 按照承诺,我遵循@Antonio

我正在开发一个使用。 为了安装,我必须运行迁移并发布其配置:

php artisan migrate --package=cartalyst/sentry
php artisan config:publish cartalyst/sentry
我想让我的包的用户只需为我自己的包运行迁移和发布配置,而不必为Sentry 2或我可能需要的任何其他包运行迁移和发布配置

有没有办法做到这一点?到底是应该这样做,还是应该让我的用户为每个包运行迁移/发布会话

谢谢

编辑:
按照承诺,我遵循@AntonioCarlosRibeiro的建议,创建了一个新的Artisan命令:

class SybilInstall extends Command
{
    protected $name = 'sybil:install';
    protected $description = 'Install the sybil package';
    public function fire()
    {
        $this->call(
            'migrate',
            array('--package' => 'cartalyst/sentry')
        );
        $this->call(
            'migrate',
            array('--package' => 'ghunti/sybil')
        );
        $this->call(
            'asset:publish',
            array('ghunti/sybil')
        );
    }
}

现在,人们只需要运行
php artisan sybil:install
,它将处理您可以运行的软件包中的所有内容(Laravel 4.1+):

文件:

在旧版本上:

Artisan::call('migrate --package=cartalyst/sentry');

Artisan::call('config:publish cartalyst/sentry'):

不错,安东尼奥。你建议我把这些行放在哪里?在我看来,创建一个新的artisan命令(php artisan package:initialize)将是最好的,你甚至可以从中运行自己的迁移。我将尝试一下并发回结果,以便将来任何人都可以在需要时使用它。再次感谢您的帮助此解决方案不再准确。在Laravel4.1中,必须在数组中传递参数,例如
Artisan::call('migrate',array('--package','cartalyst/sentry')。我猜解决方案是针对早期版本的Laravel。
Artisan::call('migrate --package=cartalyst/sentry');

Artisan::call('config:publish cartalyst/sentry'):