pwweb / laravel-core
Laravel的额外核心功能
Requires
- php: >=7.4 || ~8.0
- kalnoy/nestedset: ^5.0 || ^6.0
- laracasts/flash: ^3.2.1
- laravel/framework: ^8.24.0 || ^9.0 || ^10.0
- laravel/socialite: ^5.0
- spatie/laravel-enum: ^2.2 || ^3.0
- spatie/laravel-medialibrary: ^9.0 || ^10.0
- spatie/laravel-permission: ^5.0
Requires (Dev)
- orchestra/testbench: ^6.0 || ^7.0
- phpunit/phpunit: ^8.5 || ^9.3
- dev-master
- 0.3.17-beta
- 0.3.16-beta
- 0.3.15-beta
- 0.3.14-beta
- 0.3.13-beta
- 0.3.12-beta
- 0.3.11-beta
- 0.3.10-beta
- 0.3.9-beta
- 0.3.8-beta
- 0.3.7-beta
- 0.3.5-beta
- 0.3.4-beta
- 0.3.3-beta
- 0.3.2-beta
- 0.3.1-beta
- 0.3.0-beta
- 0.2.2-beta
- 0.2.1-beta
- 0.1.13-beta
- 0.1.12-beta
- 0.1.11-beta
- 0.1.10-beta
- 0.1.9-beta
- 0.1.8-beta
- 0.1.7-beta
- 0.1.6-beta
- 0.1.5-beta
- 0.1.4-beta
- 0.1.3-beta
- 0.1.2-beta
- 0.1.1-beta
- 0.1.0-beta
- dev-rabrowne85-patch-1
This package is auto-updated.
Last update: 2024-02-20 15:34:48 UTC
README
核心:为Laravel提供的额外核心功能,包括本地化功能:C3P0 for Laravel。查看contributing.md了解待办事项列表。
安装
通过Composer运行以下命令:
# Install the package. $ composer require pwweb/laravel-core # Publish config, migration, languages and controllers. $ php artisan vendor:publish --provider="PWWEB\Core\CoreServiceProvider" # Run migrations $ php artisan migrate
先决条件
如果需要使用捆绑的默认控制器,则假定此包使用标准的Laravel安装。捆绑的控制器从App\Http\Controllers\Controller
扩展。如果使用其他自定义基础控制器,请参阅自定义。
配置
自定义
该包提供以下标记以发布用于自定义的各个组件
标记 | 描述 |
---|---|
pwweb.core.config |
发布配置文件以调整数据库表名等。 |
pwweb.core.migrations |
发布迁移文件以对数据库表进行更改。 |
pwweb.core.language |
发布语言文件以调整翻译字符串。 |
pwweb.core.views |
发布视图文件以调整视图的整体结构。 |
扩展模型
可以通过扩展模型来添加额外的功能或添加与其他模型的关联。这样做时,需要导出此包的配置并相应地调整类名。
<?php return [ 'models' => [ 'user' => Namespace\Of\My\User::class, ... ] ];
默认和后备语言
建议将您的app.php
更改为同时使用ISO-639-1 ISO语言代码以及ISO-3166 ISO国家代码。这可以通过更改以下两个变量实现:
<?php return [ ... 'locale' => 'en-GB', 'fallback_locale' => 'en-GB', ... ];
第三方依赖项
此包依赖于几个其他包。您还应该查看它们的文档
用法
用户和人员
为了使用用户和人员模型,而不是Laravel提供的默认用户模型,需要修改auth.php
配置文件如下:
<?php 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => \PWWEB\Core\Models\User::class, ], ],
使用Laravel Auth
如果使用默认的Laravel认证并且已发布控制器,则需要对RegisterController.php
进行一些更改。
<?php // Add the following lines. use PWWEB\Core\Models\User; use PWWEB\Core\Models\Person; // Change the following two functions. protected function validator(array $data) { return Validator::make( $data, [ 'name' => ['required', 'string', 'max:255'], 'surname' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:'.User::getTableName()], 'password' => ['required', 'string', 'min:8', 'confirmed'], ] ); } protected function create(array $data) { $person = Person::create( [ 'name' => $data['name'], 'surname' => $data['surname'], ] ); $user = new User( [ 'email' => $data['email'], 'password' => Hash::make($data['password']), ] ); $user->person()->associate($person); $user->save(); $user->assignRole('user'); return $user; }
地址
该包提供了一个 HasAddresses
特性,可用于使模型与地址相关联。
<?php namespace Path\To; use Illuminate\Database\Eloquent\Model; use PWWEB\Core\Traits\HasAddresses; class MyModel extends Model { use HasAddresses; }
语言切换器
本地化包提供了一个语言切换器,可以轻松添加到blade模板中,如下所示(注意:<div>
仅为示例)
... <div class="anyContainer"> {{ Localisation::languageSelector() }} </div> ...
GraphQL
该包提供了一个用于父项目的 graphql.schema
文件。您可以在主schema
文件中包含它,如下所示
#import ../vendor/pwweb/laravel-core/graphql/schema.graphql
注意:如果您的主schema文件位于不同位置,请务必更新供应商路径。
Blade指令
@date
日期指令允许使用 Carbon\Carbon
显示和格式化日期。如果没有提供日期(即null
),则不会抛出错误并返回空字符串。如果没有提供格式,则使用配置中的默认格式。
<?php @date(Carbon\Carbon $date, string $format)
@menu
˜ 菜单指令允许根据提供的环境和根节点显示菜单。
<?php @menu(string $environmentSlug, string $rootNodeSlug)
汇率
该包有一个exchange_rates
表,可以用来保存历史汇率。为了自动更新表,提供了一个可队列的工作。这可以与Laravel的任务调度一起使用,定期更新。
<?php use PWWEB\Core\Jobs\UpdateExchangeRates; //... $schedule->job(new UpdateExchangeRates, 'target_queue')->timezone('Europe/Paris')->dailyAt('16:30'); //...
注意:汇率来自欧洲中央银行,它们每天大约在CET 16:00更新汇率。因此,您应该确保任务在稍后运行以获取最新汇率。
如果您想查看文件的原始内容,可以在这里找到。
常见问题解答
在通过composer安装时,您会看到以下消息
ErrorException : Trying to access array offset on value of type null at /var/www/vendor/pwweb/core/src/CoreServiceProvider.php:107 103| protected function registerModelBindings() 104| { 105| $config = $this->app->config['core.models']; 106| > 107| $this->app->bind(CountryContract::class, $config['country']); 108| $this->app->bind(LanguageContract::class, $config['language']); 109| $this->app->bind(CurrencyContract::class, $config['currency']); 110| } 111| Exception trace: 1 Illuminate\Foundation\Bootstrap\HandleExceptions::handleError("Trying to access array offset on value of type null", "/var/www/vendor/pwweb/core/src/CoreServiceProvider.php", []) /var/www/vendor/pwweb/core/src/CoreServiceProvider.php:107 2 PWWeb\Localisation\CoreServiceProvider::registerModelBindings() /var/www/vendor/pwweb/core/src/CoreServiceProvider.php:81 Please use the argument -v to see more details.
这是由于运行了命令 php artisan config:cache
。我们建议您删除缓存文件 bootstrap/cache/config.php
,然后运行 composer dump-autoload
以确保无误。
变更日志
请查看变更日志以获取有关最近更改的更多信息。
贡献
请查看contributing.md以获取详细信息以及待办事项列表。
安全
如果您发现任何与安全相关的问题,请使用问题跟踪器。
鸣谢
许可证
版权所有 © pw-websolutions.com。请参阅许可证文件以获取更多信息。