Как создать файл конфигурации в Laravel 4?
я Хочу знать, как создавать, импортировать и использовать новые файлы конфигурации в проекте Laravel 4.
С этим, я хочу сказать, что файлы проекта и собственные параметры. Например: я Хотел бы создать файл, который имеет некоторые статические сведения проекта, без необходимости сохранения их в базе данных.
Например:
<?php
$config = array(
'titulo_padrao' => 'Site do João',
'meta_keywords' => 'palavra1, palavra2, palavra3',
'meta_description' => 'Dramatically repurpose covalent niches vis-a-vis resource sucking benefits. Authoritatively productize.',
'script_ga' => 'script_aqui',
'grupo_administradores' => array(1,2,3),
'grupo_usuarios' => array(4,5),
'etc' => '...'
);
?>
5 answers
Вы можете создавать файлы в папке настроек, nome_do_seu_arquivo.php
и получить доступ к свойствам через:
Config::get('nome_do_seu_arquivo.nome_da_propriedade');
:
Config::get('nome_do_seu_arquivo.nome_do_array_da_propriedade.nome_da_propriedade');
Создайте файл php в папке app/config/myconfig.php
, (можно любое имя):
<?php
return array(
'titulo_padrao' => 'Site do João',
'meta_keywords' => 'palavra1, palavra2, palavra3',
'meta_description' => 'Dramatically repurpose covalent niches vis-a-vis resource sucking benefits. Authoritatively productize.',
'script_ga' => 'script_aqui',
'grupo_administradores' => array(1,2,3),
'grupo_usuarios' => array(4,5),
'etc' => '...'
);
Для доступа к информации, используйте:
Config::get('myconfig.titulo_padrao');
Для более подробной информации http://laravel.com/docs/configuration
Я сделал это, когда мне пришлось:
<?php
/*
|---------------------------------------------------
| File: application/config/_sysvars.php
|---------------------------------------------------
|
| Configurações estáticas para uso no site
*/
return array(
//=========== Configurações principais===========//
//Email cadastrado no PagSeguro e outros sistemas de recebimento.
'email_pagseguro' => "[email protected]",
//Identificador Paypal
'email_paypal' => "[email protected]",
//Identificador Moip
'email_moip' => "[email protected]",
//Site Title:
'title' => 'Dummy Hans - LARAVEL',
);
?>
В контроллер:
<?php
/*
|---------------------------------------------------
| File: application/controller/HomeController.php
|---------------------------------------------------
|
| Controler para a Home.
*/
class HomeController extends BaseController {
/* The layout that should be used for responses.
*/
protected $layout = 'layouts.master';
public function showHome() {
$sysvars = Config::get('_sysvars'); //esta na pasta app/config/_sysvars.php
foreach ($sysvars as $key => $value ) {
$data["$key"]=$value;
}
//dd($data);
//Renderiza a view v_home
$this->layout->content = View::make('v_home',$data);
}
}
?>
Обратите Внимание, что, для того чтобы изменить эти параметры, Config::set()
не будет сохранить файл, как могли бы ожидать.
Ты должен реализовать это в счет, и если, рассматривая файлы конфигурации в PHP, где, как правило, если вы хотите сохранить возможных комментариев, это может стать сложным. В случае отсутствия комментариев, var_export()
этого будет достаточно.
, если вы хотите сохранить на комментарии (желательно при изменении файлов конфигурации Laravel, например), рекомендуется использовать пакет Laravel Setting, устанавливаемый самим Composer. Он позволяет создавать, читать, изменять и удалять политик собственные параметры с помощью файла JSON, обладая еще fallback политик параметры по умолчанию (файлы PHP).
Дополняя ответы, для тех, кто не следует добросовестно стандартная структура Framework. Итак, у меня есть папка "домена" приложения, который наследует его имя, например:
- app
- Acme
- Config
- Models
- Repositories
- Services
- Queues
- ...
- storages
- tests
- config
- ...
Обратите внимание, что внутри Acme
у меня есть папка Config
. Таким образом, я могу отделить параметры компонентов Framework с до логики моего приложения. app/config
, сохраняется, с учетом всех параметров по умолчанию.
, Чтобы сделать Framework понимать, что Acme/Config
- пространство имен "файлы конфигурации", вы можете добавить следующую строку в конце файла app/start/global.php
:
/*
|--------------------------------------------------------------------------
| Acme Config Namespace
|--------------------------------------------------------------------------
*/
Config::addNamespace('Acme', app_path('Acme/Config'));
, Сделали это, давайте предположим, что у вас есть этот файл конфигурации:
- app
- Acme
- Config
- social.php
Вы можете получить доступ к нему, например, следующим образом:
\Config::get('Acme::social.facebook');
Acme::
это, чтобы указать пространство имен, в котором Framework нужно искать файл конфигурации. social
- это имя файла, и facebook
ключ массива.