stolz / wiki
基于Laravel构建的简单wiki引擎。
dev-master
2016-04-29 10:03 UTC
Requires
- php: >=5.5.9
- baum/baum: ~1.1
- felixkiss/uniquewith-validator: 2.*
- gabrielbull/browser: 3.*
- laravel/framework: 5.1.*
- laravel/socialite: ~2.0
- league/commonmark: ~0.10
- phpspec/php-diff: ~1.0
- stolz/assets: dev-master
- stolz/laravel-form-builder: dev-master
Requires (Dev)
- barryvdh/laravel-debugbar: dev-master
- filp/whoops: ~1.0
- phpunit/phpunit: ~4.0
- spatie/laravel-tail: ~1.0
- squizlabs/php_codesniffer: ~2
- stolz/laravel-html-tidy: dev-master
This package is auto-updated.
Last update: 2024-09-13 02:23:35 UTC
README
一个简单的PHP wiki引擎。
特点
- 后端基于Laravel 5.1 PHP框架。代码占用空间小,这使得应用程序非常容易根据您的需求进行定制。
- 前端基于Zurb Foundation CSS框架,它提供了简洁的响应式布局和友好的移动端用户体验。
- 页面使用Markdown编写,并可以实时预览最终标记。
- 用户身份验证/注册可通过Oauth提供者(Facebook、GitHub、Google和Twitter)一键完成。
- 支持多语言,通过Gettext实现。
- 包含用于根据用户角色实现您自己的自定义权限系统的模板。
注意事项
此项目并非旨在作为大规模分发的实际应用,而是作为一个概念验证,展示我喜欢使用的技术和概念(RESTful架构、依赖注入、响应式设计、SOLID原则等)。尽管如此,它被实现为在实际场景中100%可用的。
安装
通过git
git clone https://github.com/Stolz/Wiki.git --depth 1 wiki && cd wiki && composer install
通过composer
composer create-project stolz/wiki --prefer-dist --stability=dev --no-scripts && cd wiki
安装项目后,将其配置为任何其他Laravel应用程序
$EDITOR .env
$EDITOR config/app.php
php artisan migrate --seed
自定义权限
尝试对任何wiki资源(用户、页面、分类等)执行操作(创建、更新、删除等)将触发位于app/Role.php
文件的can()
方法,并带有相应的操作和资源参数。
函数的默认实现非常宽松,允许所有用户角色对所有资源执行所有操作。
/**
* Determine if $this role is authorized to execute $action on $resource.
*
* @param string $action
* @param string $resource
* @return bool
*/
public function can($action, $resource)
{
return true;
}
要自定义每个用户角色可以执行的操作,您只需将您的逻辑添加到此方法中。一个简单的例子可能是
// file: app/Role.php
public function can($action, $resource)
{
$currentUserProfile = $this->name;
// Admin role has no restrictions
if ($currentUserProfile === 'admin')
return true;
// Relaxed read permissions for all roles
if($action === 'index' or $action === 'show')
return true;
// Editor role can edit pages
if ($currentUserProfile === 'editor' and $resouce === 'page' and $action === 'edit')
return true;
// Manager role has full access to categories
if ($currentUserProfile === 'manager' and $resouce === 'category')
return true;
return false;
}
如果您仍想使用更高级的权限系统,请随意完全替换位于app/Http/Middleware/Permissions.php
的Permissions
中间件。
许可证
MIT许可证。请参阅包含的LICENSE.txt文件以获取详细信息。
(c) Stolz。