라 라벨과 함께 일하기 시작했습니다. 라 라벨 4를 기본 프레임 워크로 사용하여 몇 년 전에 만든 전체 시스템을 다시 작성해야합니다. 예전 시스템에서는 constant.php
몇 가지 상수가 선언 된 파일과 globals.php
많은 배열 세트 (예 : 카테고리 상태, 이벤트 유형, 언어 등)가 포함 된 파일이있었습니다. 이렇게하면 다음과 같은 것을 사용할 수 있습니다.
foreach ( $langs as $code => $domain ) {
// Some stuff
}
내 앱 어디에서나.
제 질문은 어떻게 그 정보를 소위 "라 라벨 방식"으로 저장할 수 있는가입니다. 이 정보를 저장하기 위해 일종의 객체를 사용하여 이것을 서비스로 설정하고 파사드를 만들려고했습니다.
app / libraries / Project / Constants.php
namespace PJ;
class Constants {
public static $langs = [
'es' => 'www.domain.es',
'en' => 'www.domain.us',
'uk' => 'www.domain.uk',
'br' => 'www.domain.br',
'it' => 'www.domain.it',
'de' => 'www.domain.de',
'fr' => 'www.domain.fr'
];
}
app / libraries / Project / ConstantsServiceProvider.php
namespace PJ;
use Illuminate\Support\ServiceProvider;
class ConstantsServiceProvider extends ServiceProvider {
public function register() {
$this->app->singleton('PJConstants', function() {
return new Constants;
});
}
}
app / libraries / Project / ConstantsFacade.php
namespace PJ;
use Illuminate\Support\Facades\Facade;
class ConstantsFacade extends Facade {
protected static function getFacadeAccessor() {
return 'PJConstants';
}
}
composer.json
"psr-4": {
"PJ\\": "app/libraries/Project"
},
그래서 그 속성에 PJ\Constants::$langs
.
이것은 효과가 있지만 가장 효율적이거나 올바른 방법이라고 생각하지 않습니다. 전체 서비스 제공 업체와 파사드 등 모든 것을 생성하여 변수를 "전파"하는 올바른 방법입니까? 아니면이 데이터를 어디에 넣어야합니까?
조언을 해주셔서 감사합니다.
# 01 수정
모든 컨트롤러와 뷰에 전달하려는 데이터는 내 게시물 시작 부분의 예제와 같이 스크립트에서 직접 설정할 수 있지만 예를 들어 데이터베이스에서 동적으로 생성 할 수도 있습니다. 이 데이터는 카테고리 목록이 될 수 있습니다. 내비게이션 바를 생성하려면 모든 뷰에서 필요하지만 라우팅 패턴 (예 :)을 정의 /category/subcategory/product
하고 여러 컨트롤러에서 일부 정보를 구문 분석 하는데도 필요합니다 (예 : X 제품을 보유하는 카테고리에서 정보를 가져옴).
내 배열은 다음과 같습니다.
$categories = [
1 => ['name' => 'General', 'parent' => 0, 'description' => 'Lorem ipsum...'],
2 => ['name' => 'Nature', 'parent' => 0, 'description' => 'Lorem ipsum...'],
3 => ['name' => 'World', 'parent' => 0, 'description' => 'Lorem ipsum...'],
4 => ['name' => 'Animals', 'parent' => 2, 'description' => 'Lorem ipsum...']
]
예를 들면. 인덱스는 카테고리의 ID이고 값은 카테고리와 관련된 정보입니다.
모든 컨트롤러 및 뷰에서 사용할 수있는이 배열이 필요합니다.
그렇다면 Config 변수로 저장해야합니까? 이 데이터를 어떻게 저장할 수 있습니까? 가장 좋고 의미 상 올바른 방법은 무엇입니까?