samanix / laranix
Laravel 扩展功能
Requires
- php: ~7.1.0
- andreasindal/laravel-markdown: ~2.0
- guzzlehttp/guzzle: ~6.0
- laravel/framework: 5.5.*
Requires (Dev)
- barryvdh/laravel-debugbar: ~3.0
- barryvdh/laravel-ide-helper: ~2.4
- fzaninotto/faker: ~1.4
- laravel/dusk: 2.0.*
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~6.0
Replaces
- laranix/antispam: 4.0.8
- laranix/auth: 4.0.8
- laranix/foundation: 4.0.8
- laranix/installer: 4.0.8
- laranix/session: 4.0.8
- laranix/support: 4.0.8
- laranix/themer: 4.0.8
- laranix/tracker: 4.0.8
This package is not auto-updated.
Last update: 2024-09-29 23:07:26 UTC
README
关于
Laranix 为 Laravel 提供扩展功能和更丰富的现有功能。
虽然它是一个庞大的包,但作为包的形式,更容易随着新的 Laravel 版本进行更新。
贡献
鼓励通过 拉取请求 进行贡献。
安全
关于安全问题,请联系 sam@samanix.com。
许可
Laranix 是开源软件,使用 MIT 许可证 发布。
要求
- PHP 7.1+
- laravel/framework 5.5.*
- guzzlehttp/guzzle ~6.0
- andreasindal/laravel-markdown ~2.0
特性
反垃圾邮件
在表单上提供不可见的 recaptcha 输入(使用 Google 登录),以及一个序列 ID 字段,这将防止表单被重复提交。
身份验证
基于 Laravel 自身身份验证包构建的自定义身份验证包,提供
- 更丰富的用户模型
- 用户组以及组标志(权限)
- 密码重置
- 电子邮件验证
- 用户笼子 - 保护一个区域,这样用户就不能访问它
基础
为您的应用程序提供基本包和配置。
安装器
安装、发布和复制 Laranix 文件到您的应用程序。
会话
添加 IP 锁定到会话,如果不使用,则不需要。
支持
添加额外的功能,包括
- 简单的 URL 创建器,它始终(尝试)使用完整的 URL - 如果不这样做,则您的设置可能存在问题
- 使用命名参数的字符串格式化(类似于 C#)
- 设置类,允许您使用类来确定参数及其类型
主题
提供主题并加载给定的文件,自动将类似的文件合并到一个文件中,并在添加或更改任何文件时更新
追踪器
为用户操作提供类似面包屑的追踪
安装
Composer
composer require samanix\laranix
或将 "samanix\laranix": "~2.0"
添加到您的 composer.json 中,然后运行 composer update
。
服务提供者
自 Laravel 5.5 以来,服务已通过 composer.json
中的包发现自动注册。
然而,在 config/app.php
中,您可能仍然希望注释掉或删除
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Laranix 的开发安装提供了许多其他包,有关它们的帮助请参阅文档
barryvdh/laravel-debugbar
barryvdh/laravel-ide-helper
laravel/dusk
可选:注册 Facades
自 Laravel 5.5 以来自动注册。
Artisan 命令
自 Laravel 5.5 以来自动注册。
然而,在运行 Laranix 的任何命令之前
- 请确保从 'database/migrations/' 中删除默认的 Laravel 用户和密码迁移
- 您也可以从相关的应用程序文件夹中删除
- 任何默认 Laravel 控制器
- 任何默认 Laravel 视图
- 任何默认 Laravel 模型
- 任何由 Laravel 默认提供的 resources/assets 中的文件/文件夹
- 建议运行
php artisan preset none
,尽管这不是必需的。
运行 php artisan laranix:install -AO
。
有关选项,请参阅 php artisan laranix:install --help
。
如果设置了所需选项,以下命令也会自动运行。
php artisan vendor:publish --tag=laranix-configs
php artisan vendor:publish --tag=laranix-migrations
php artisan vendor:publish --tag=laravel-mail
php artisan vendor:publish --provider="Indal\Markdown\MarkdownServiceProvider"
如果您跳过这些命令,可以在稍后运行 artisan 命令。
该命令还尝试运行 composer dump-autoload
,如果您遇到与此相关的错误,请确保手动运行。
主题命令
Laranix 的基本主题已复制到 resources/themes
目录,您可以选择设置编译器并将文件复制到 public\themes
目录,或者使用命令进行符号链接。
php artisan laranix:themer:link {theme} {images|styles|scripts}
第一个参数是主题键,第二个对应所需文件夹。
控制器
Laranix 运行自己的基础控制器,您可以在自己的控制器中扩展此类,或者完全从头开始编写,如果您这样做,请记住更新 Laranix 安装的控制器。
Laranix 基础控制器位于 \Laranix\Foundation\Controllers\Controller
。
基础控制器包含可以调用的方法和特性,这些方法和特性可以构建特定场景。
错误控制器
Laranix 在 App\Http\Controllers\Errors
中提供了一个特殊的错误控制器。这覆盖了基础控制器中的某些部分,允许 Themer
加载并显示使用您全局样式和脚本的自定义错误页面(因为某些部分如 Themer
只在 GET 请求上自动加载)。
为了使用它,打开 app/Exceptions/Handler.php
,并在当前渲染语句之上将以下内容添加到 render
方法中
$response = $this->container->make(App::class)->renderClientError($exception);
if ($response !== null) {
return new Response($response, $exception->getStatusCode(), $exception->getHeaders());
}
路由
提供了一些用于身份验证的路径以及一个入口页面,您可以自由更改这些。
在运行 laranix:install
时,web.php
路由文件会被完全覆盖为 Laranix 路由。如果需要,请先进行备份。
只有当设置了 -O|overwrite
参数时才会覆盖。
事件
将以下内容添加到您的 app/Providers/EventServiceProvider.php
中的 $listen
数组
\Laranix\Auth\Email\Events\Updated::class => [
\Laranix\Auth\Email\Listeners\Updated::class,
],
\Illuminate\Auth\Events\Logout::class => [
\Laranix\Auth\Listeners\Logout::class,
],
\Illuminate\Auth\Events\Registered::class => [
\Laranix\Auth\Listeners\Registered::class,
],
\Laranix\Auth\Password\Events\Updated::class => [
\Laranix\Auth\Password\Listeners\Updated::class,
],
将以下内容添加到您的 App\Providers\EventServiceProvider.php
中的 $subscribe
数组(如果不存在则创建)
\Laranix\Auth\Email\Verification\Events\Subscriber::class,
\Laranix\Auth\Events\Login\Subscriber::class,
\Laranix\Auth\Group\Events\Subscriber::class,
\Laranix\Auth\Password\Reset\Events\Subscriber::class,
\Laranix\Auth\User\Cage\Events\Subscriber::class,
\Laranix\Auth\User\Events\Subscriber::class,
\Laranix\Auth\User\Groups\Events\Subscriber::class,
您还可以注册自己的监听器,以及或代替默认提供的。
中间件
打开 app/Http/Kernel.php
,并将以下内容添加到 $routeMiddleware
'antispam' => \Laranix\AntiSpam\Middleware\Verify::class,
然后,将 \Laranix\Tracker\Middleware\Flush::class
添加到 $middleware
数组。
配置
打开 config\auth.php
并编辑 providers
数组,添加
'laranixuser' => [
'driver' => 'eloquent',
'model' => \Laranix\Auth\User\User::class,
],
然后将 guards.web.provider
的值更改为 laranixuser
。
您还可能希望将 guards.api.provider
也更改为 laranixuser
。
接下来,打开 config\mail.php
并将 markdown.theme
更改为 laranix
。
.env 文件
将以下设置添加/编辑到您的 .env
APP_VERSION=your-app-version
RECAPTCHA_KEY=site-key
RECAPTCHA_SECRET=secret-key
SESSION_DRIVER=laranix
其他配置文件
您可以编辑的其他配置包括
laranixauth.php
配置身份验证组件。
themer.php
配置 Themer 组件。
appsettings.php
为您的应用程序提供一些额外的自定义设置。
globalviewvars.php
将要在 所有 视图中共享的变量添加到。
themerdefaultfiles.php
添加 Themer 在初始化时将在所有请求中加载的文件。
socialmedia.php
提供到各种社交媒体渠道的链接,您可以自由添加自己的。
defaultusergroups.php
添加并配置数据库初始化时的默认用户组。
antispam.php
配置反垃圾组件。
tracker.php
配置 Tracker 组件。
其他包
markdown.php
如果您允许用户输入,请记住在此文件中将 escape_markup
设置为 true
。
数据库
使用 php artisan migrate
命令运行迁移。
如果使用 --D|seeds
选项安装了 Laranix,请使用 php artisan db:seed --class=DefaultGroups
命令将默认用户组填充到数据库中。
Artisan 命令
除了 laranix:install
命令外,Laranix 还提供了一些其他命令。
请记得使用
php artisan <command> --help
来查看选项和信息。
laranix:themer:link
将给定主题的图像目录链接到公共主题图像目录。
laranix:themer:clear
从主题中清除编译的样式和脚本文件。
laranix:tokens:clear
从给定模型的数据库中清除过期的令牌。
Laranix 令牌的默认模型为
\Laranix\Auth\Email\Verification\Verification
\Laranix\Auth\Password\Reset\Reset
附加说明
视图
Laranix 提供了几个视图以帮助您开始,同时也提供了一些 Markdown 格式的邮件,因此如果您的 config\laranixauth.php
配置为不在邮件中使用 Markdown,您将需要编辑 resources/views/mail/auth/
中的视图。
Webpack
如果您自定义了主题设置,请记得更新 webpack.mix.js
。
测试
请参阅 此处。