首先,您需要转到app/config/app.php
文件并在providers
部分中添加以下内容:
'Laracms\Providers\SettingsServiceProvider',
在同一文件中的aliases
部分中,您应该添加:
'Settings' => 'Laracms\Facades\Settings',
在你的
app/Laracms/Providers
中,你应该创建一个名为
SettingsServiceProvider.php
的文件。
<?php
namespace Laracms\Providers;
use Illuminate\Support\ServiceProvider;
class SettingsServiceProvider extends ServiceProvider {
public function register()
{
$this->app->bind('settings', function()
{
return new \Laracms\Settings();
});
}
}
在你的
app/Laracms/Facades/
文件夹中,你应该创建
Settings.php
文件:
<?php
namespace Laracms\Facades;
use Illuminate\Support\Facades\Facade;
class Settings extends Facade {
protected static function getFacadeAccessor() { return 'settings'; }
}
现在在你的
app/Laracms
目录中,你应该创建一个名为
Settings.php
的文件:
<?php
namespace Laracms;
class Settings {
public function get() {echo "get"; }
public function set() {echo "set"; }
}
如果您想将文件放在自定义文件夹Laracms
中,您需要将该文件夹添加到您的composer.json
中(如果您使用标准的app/models
文件夹,则无需向此文件添加任何内容)。因此,现在打开composer.json
文件,在autoload
->classmap
部分中添加app/Laracms
,以便该文件的这个部分看起来像这样:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/Laracms"
]
},
现在你需要在项目文件夹中的控制台中运行:
composer dump-autoload
创建类映射
如果一切正常,现在您应该能够在您的应用程序中使用 Settings::get()
和 Settings:set()
需要注意的是,我使用了大写字母的文件夹名称,因为按照约定,命名空间以大写字母开头。
composer.json
中将你的文件夹添加到classmap
。 - Marcin Nabiałek