ied*_*vil 6 php database facade laravel laravel-4
看了几个关于外墙和laravel 4的教程...尝试了一些......不喜欢他们工作的方式.
例如,他们并不都提供了一种定义外观文件和服务提供商存储位置的方法......我试图远离那个并让我的头撞到几个墙,直到我决定做这个线程.
所以:假设我有一个名为Laracms(laravel cms)的应用程序.
我想将我创建的所有内容 - 外墙,服务提供商等存储在名为laracms的app下的文件夹中.
所以我有/ app/laracms/facades,/ app/laracms/serviceproviders等等.我不想将外观与数据库模型混合在一起,我希望尽可能将内容保持分离.
在我的例子中,现在让我们看一下外观的设置名称(我希望实现一个设置类,用于视图和管理员来设置misc.的东西).
Settings :: get(),Settings :: set()作为方法.
任何人都可以解释如何正确设置外墙?我不知道我做错了什么,我需要一个新的开始.
谢谢,克里斯
寻找一步一步的简单解释如何以及为什么.
Mar*_*łek 13
首先,您需要转到app/config/app.php并providers添加:
'Laracms\Providers\SettingsServiceProvider',
Run Code Online (Sandbox Code Playgroud)
在部分中的同一文件中,aliases您应该添加:
'Settings' => 'Laracms\Facades\Settings',
Run Code Online (Sandbox Code Playgroud)
在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();
});
}
}
Run Code Online (Sandbox Code Playgroud)
在app/Laracms/Facades/你的应该创建文件Settings.php:
<?php
namespace Laracms\Facades;
use Illuminate\Support\Facades\Facade;
class Settings extends Facade {
protected static function getFacadeAccessor() { return 'settings'; }
}
Run Code Online (Sandbox Code Playgroud)
现在在您的app/Laracms目录中,您应该创建文件Settings.php:
<?php
namespace Laracms;
class Settings {
public function get() {echo "get"; }
public function set() {echo "set"; }
}
Run Code Online (Sandbox Code Playgroud)
由于您希望将文件保存在自定义文件夹中Laracms,因此需要将此文件夹添加到您的文件夹中composer.json(如果使用标准app/models文件夹,则无需向此文件添加任何内容).所以现在打开composer.json文件并在autoload- > classmap你应该添加,app/Laracms所以composer.json的这一部分可能如下所示:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/Laracms"
]
},
Run Code Online (Sandbox Code Playgroud)
现在,您需要在项目内部的控制台中运行:
composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
创建类映射
如果一切正常,你现在应该可以在应用程序中使用Settings::get()和Settings:set()
您需要注意我使用了带有大写字母的文件夹,因为按照惯例,命名空间以大写字母开头.