查找了一些有关外墙和laravel 4的教程...尝试了一些...不喜欢它们的工作方式。
例如,它们都没有提供一种定义外观文件和服务提供者的存储位置的方法……而我试图摆脱这一点,把头撞到几堵墙前,直到我决定执行此线程。
所以:假设我有一个名为Laracms(laravel cms)的应用程序。
我想将我创建的所有内容(外墙,服务提供商等)存储在名为laracms的应用程序下的文件夹中。
因此,我将拥有/ app / laracms / facades,/ app / laracms / serviceproviders等。我不想将外观与数据库模型混合使用,我想使各部分尽可能分开。
现在,以我的情况为例,外墙的“设置”名称(我想实现一个设置类以在视图中使用,并通过admin设置其他内容)。
Settings :: get(),Settings :: set()作为方法。
谁能解释如何正确设置立面?我不知道自己在做什么错,我需要重新开始。
谢谢克里斯
逐步寻找有关如何以及为什么的简单说明。
首先,您需要转到,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
这样composer.json的这一部分可能看起来像这样:
"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()
您需要注意,我使用的文件夹带有大写字母,因为按照惯例,名称空间以大写字母开头。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句