snowfire / snowfire-app
Requires
- php: >=5.4.0
- illuminate/support: ~5.0
This package is auto-updated.
Last update: 2024-09-10 19:06:12 UTC
README
此包可以使您的Laravel应用连接到Snowfire。
安装此包
将此添加到您的composer.json文件中
"snowfire/snowfire-app": "dev-master"
将此添加到您的config/app.php中的服务提供者
'Snowfire\App\SnowfireServiceProvider'
将此添加到您的app/Http/Kernel.php中的路由中间件
'snowfire' => 'Snowfire\App\Middleware\SnowfireMiddleware',
'snowfireAdmin' => 'Snowfire\App\Middleware\SnowfireAdminMiddleware',
发布配置文件
$ php artisan vendor:publish
为Snowfire安装创建数据库表
$ php artisan migrate
填充数据
将此添加到您的DatabaseSeeder.php文件
$this->call('\Snowfire\App\Storage\Seeder');
CSRF保护
如果您在app/Http/Kernel.php中启用了CSRF中间件,请打开app/Http/Middleware/VerifyCsrfToken.php并添加以下内容到handle方法中
if ($request->header('User-Agent') == 'Snowfire') { return $next($request); }
集成可能性
有两种不同的方式将您的应用连接到Snowfire。作为管理区域中的链接和作为公开操作。
示例
假设您有一系列事件。一个公开操作可能像http://your-app.com/events/all
这样的链接,它将渲染一个HTML <ul>
列表。然后您将有一个从Snowfire到http://your-app.com/admin
的管理链接,允许用户添加/编辑/删除事件。
首先将您的操作添加到config/snowfire_app.php
return [ 'id' => 'demo_app', 'name' => 'Demo app', 'tab' => 'admin', 'actions' => [ 'events' => 'action.events.index', 'event' => 'action.events.show', ] ];
此配置将管理链接添加为名为snowfire.tab
的命名路由,并为所有事件添加一个路由。标签和操作都是可选的(但您需要其中之一,对吧?)
您的routes.php文件
// Admin routes Route::group(['prefix' => 'admin/{snowfireAppId}', 'before' => 'snowfireAppAuth', 'namespace' => 'Admin'], function() { Route::get('/', ['as' => 'admin.index', function($appId) { return 'Admin for appId: ' . $appId; }]); }); // Action routes Route::group(['namespace' => 'Action'], function() { Route::get('events', ['uses' => 'EventsController@index', 'as' => 'action.events.index']); Route::get('events/{id}', ['uses' => 'EventsController@event', 'as' => 'action.events.show']); });
这创建了一个管理路由和一个公开操作。管理路由背后有一个snowfireAppAuth过滤器,确保用户已登录且受信任。
您的Snowfire片段到公开事件列表
登录Snowfire并安装应用(系统 -> 应用)
http://your-hosted-app.com/snowfire/install
使用此代码创建一个新的片段
<?xml version="1.0" encoding="utf-8"?> <snippet> <name>All events</name> <html><![CDATA[ { com_application2 ( id: '{{ component_id_0 }}', description: 'Demo App', app: 'demo_app', action: 'events', debug: 'true' ) } ]]></html> </snippet>
警告:将应用添加到根/(即主页)目前不受支持。请创建一个子页面以添加您的应用。
现在只需将片段添加到页面,它将显示事件列表。
链接
当您在Snowfire内部渲染的操作中工作时,您需要使用
<a href="{{ Snowfire::route('my.route') }}">A linked route</a>
这将确保链接在Snowfire内部正常工作。