Here is my directory (the screen-shot in this link)。另外我还有一个名为config.php
的文件,其中包含一些变量,如下所示:
<?php
// db
$dbname = 'mydb';
$db_username = 'root';
$db_password = '';
// login
$l_email = 'some@one.com';
$l_password = 'mypas'
// details
$sleep_on_error = 1; // per sec
// and etc
// .
// .
// .
?>
如您所见,我有一些存储在config.php
文件中的变量。我可能需要在项目的每个部分中使用这些变量。所以我需要在整个项目中访问config.php
文件。所以我可以将config.php
文件添加到composer中,以便在整个项目中访问它。像这样:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/classes/config.php"
]
},
我所要做的就是为我的项目实施一个简单的配置系统。请告诉我,我做得对吗?或者我应该为此定义一个类?或者我所做的一切都是错的,我还应该做点什么呢?
简而言之,为项目进行配置的最佳结构是什么?
答案 0 :(得分:4)
Laravel方式正在使用config files。创建/config
并将其放在config('my.variable')
目录中,然后全局访问常量值:
my.php
以下是<?php
return [
'variable' => 15,
'some-array' => [1, 2, 5],
];
:
void Main()
{
System.Data.SQLite.SQLiteConnection con = new System.Data.SQLite.SQLiteConnection( @"Data Source="+FilePath );
SQLiteQueryProvider provider = new SQLiteQueryProvider(con, new ImplicitMapping(), QueryPolicy.Default);
var data = provider.GetTable<MyTable>("MyTable")
.Where(mt => mt.Level1 == "M_TO" && mt.AggCode == "C_DTA")
.GroupBy(mt => new {mt.Date, mt.CompanyName})
.Select(mt => new
{
Date = mt.Key.Date
CompanyName = mt.Key.CompanyName,
Sum = mt.Sum(t => t.Amount)
}
).ToList();
答案 1 :(得分:2)
这很简单,只需两步:
1)在constants.php
下创建一个名为config/app
的文件,并将值放在数组形式中,如:
return [
'APP_NAMEIS' => 'myappname'
];
经过上述步骤,
2)使用Config
Facade在任何地方使用该代码:
Config::get('constants.APP_NAMEIS');
希望这清楚,如何在任何地方使用常数。请参阅more detail的附件参考。
答案 2 :(得分:1)
您可以创建一个像@Alexey Mezenim建议的文件 - 在admin-settings.php
目录中说/config
,并用包含全局所需的常量/值的数组填充
//admin-config.php
<?php
return[
'db' => [
'name' => 'mydb',
'username' => 'root',
'password' =>''
],
'login' => [
'email' =>'some@one.com',
'password' => 'mypas'
],
'sleep_on_error' => 1
];
然后,您可以在应用程序的任何位置访问值
config('admin-config.db.name')
config('admin-config.login.email')
config('admin-config/sleep_on_error')
//and so on
答案 3 :(得分:0)
您可以轻松地从
等文件中添加常量配置<? // conf.php
$config = ['dbname' => 'test'];
return $config;
define('config', include('conf.php'));
echo config['dbname'];
答案 4 :(得分:0)
这就是我在Laravel 5.2应用程序中的表现
首先在constants.php
下创建一个名为my_app/bootstrap/
的php文件,并在此文件中写出整个应用程序所需的所有常量;
constants.php
if (!defined('LOGO_URL')) {
define('LOGO_URL', SITEURL . '/images/' . 'logo.png');
}
if (!defined('GRAVATAR_SIZE')) {
define('GRAVATAR_SIZE', 100);
}
if (!defined('SITE_NAME')) {
define('SITE_NAME', 'My App');
}
然后require
将my_app/bootstrap/autoload.php
像这样
require __DIR__ . '/constants.php';
现在我可以在整个应用程序中访问此变量!
希望这有帮助!