mysql 데이터베이스를 백업하고 github 및 packagist에 푸시하는 laravel 4 패키지를 개발했습니다. 다른 laravel 설치에서 패키지를 가져 오면 정상적으로 작동합니다. 패키지 구성 파일을 문제없이 게시하지만 게시 된 구성 파일의 구성 중 일부를 다시 정의하려고하면 패키지는 여전히 공급 업체의 원래 구성 파일을 사용하지만 게시 된 구성 파일은 보지 않습니다.Laravel 4 패키지 설정 파일
공급 업체/rafia/DB 백업/SRC/Rafia/DbBackup이/backupdatabase.php
<?php
namespace Rafia\DbBackup;
use Config;
use Illuminate\Filesystem\Filesystem;
class BackupDatabase {
/**
* @var
*/
private $filesystem;
/**
* @param Filesystem $filesystem
*/
public function __construct(Filesystem $filesystem)
{
$this->filesystem = $filesystem;
}
public function backup()
{
$this->DbBackupFolder();
if($this->runBackup() == 0)
{
return true;
}
return false;
}
private function DbBackupFolder()
{
if(!$this->filesystem->isDirectory(Config::get('DbBackup::DbBackupPath')))
{
return $this->filesystem->makeDirectory(Config::get('DbBackup::DbBackupPath'));
}
return true;
}
private function runBackup()
{
$output = array();
$return_var = NULL;
$command = Config::get('DbBackup::DbMysqlDumpPath')." --opt --host=".Config::get('DbBackup::DbHost')." --user=".Config::get('DbBackup::DbUser')." --password=".Config::get('DbBackup::DbPass')." ".Config::get('DbBackup::DbName')." > ".Config::get('DbBackup::DbBackupPath')."/".Config::get('DbBackup::DbName')."_".date('m_d_y_g-i-a').".sql";
$run = exec($command, $output, $return_var);
return $return_var;
}
}
공급 업체/rafia/DB 백업/SRC/Rafia/DbBackup이/DbBackupServiceProvider.php : 여기 내 코드입니다
<?php namespace Rafia\DbBackup;
use Illuminate\Foundation\AliasLoader;
use Illuminate\Support\ServiceProvider;
class DbBackupServiceProvider extends ServiceProvider {
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->app['BackupDatabase'] = $this->app->share(function($app)
{
$filesystem = $this->app->make('Illuminate\Filesystem\Filesystem');
return new BackupDatabase($filesystem);
});
$this->app->booting(function()
{
AliasLoader::getInstance()->alias('BackupDatabase', 'Rafia\DbBackup\Facades\BackupDatabaseFacade');
});
}
public function boot()
{
$this->package('Rafia/DbBackup');
}
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides()
{
return array();
}
}
공급 업체/rafia/DB 백업/SRC/설정/config.php를
<?php
return [
'DbName' => 'packages',
'DbUser' => 'root',
'DbPass' => '',
'DbHost' => 'localhost',
'DbMysqlDumpPath' => 'C:/xampp/mysql/bin/mysqldump',
'DbBackupPath' => app_path().'/storage/DbBackup'
];
공급 업체/rafia/DB 백업/SRC/Rafia/DbBack 최대/외관/BackupDatabaseFacade.php
<?php
namespace Rafia\DbBackup\Facades;
use Illuminate\Support\Facades\Facade;
class BackupDatabaseFacade extends Facade {
protected static function getFacadeAccessor() { return 'BackupDatabase'; }
}
은 서비스 공급자 정의의 추가에 도움
이 링크는 질문에 대답 수 있지만 , 여기에 답변의 핵심 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. 여기를 한 번보세요. http://stackoverflow.com/help/deleted-answers – bummi