timedoor/blog

:Timedoor 简单博客

v1.0.0 2022-05-17 06:42 UTC

This package is auto-updated.

Last update: 2024-09-17 12:20:58 UTC


README

安装

$ composer require timedoor/blog

设置

1. 安装资源

$ php artisan blog:install
$ php artisan vendor:publish --tag=blog
$ php artisan storage:link

2. 设置环境

APP_URL={your_project_domain} 

// example: http://timedoor-blog.test

3. 设置配置和 composer.json

将以下代码添加到 filesystems 配置中

// app/config/filesystems.php

'disks' => [
	...
	'public_upload' => [
		'driver' => 'local',
		'root' => public_path() . '/upload',
		'url' => '/upload'
	]
]

将以下代码添加到 composer.json 中

// composer.json
"autoload-dev": {
	...
	"files": [
		"app/Helpers/blog.php"
	]
},

之后别忘了重新加载自动加载

$ composer dump-autoload

4. 设置数据库

$ php artisan migrate
$ php artisan db:seed --class=MultilanguageSettingTableSeeder

5. 完成设置

您需要在您的内核中注册本地化中间件

// app/Http/Kernel.php

protected $routeMiddleware = [
	...
	'localize.api' => \App\Http\Middleware\LocalizeApiRequest::class,
	'localize' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes::class,
	'localizationRedirect' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::class,
	'localeSessionRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect::class,
	'localeCookieRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleCookieRedirect::class,
	'localeViewPath' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationViewPath::class,
]

之后您需要在 AppServiceProvider 的 boot 方法中添加一些代码

// app/Providers/AppServiceProvider.php

use Illuminate\Support\Facades\Config;

public function boot()
{
	...
	$multilanguages  =  getMultilanguageSetting();
	
	Config::set('translatable.locales', $multilanguages->pluck('locale')->toArray());
	Config::set('laravellocalization.supportedLocales', $multilanguages->pluck('detail', 'locale')->toArray());
}

最后您需要在 RouteServiceProvider 中注册路由

Route::prefix('api/v1')
	->middleware(['api', 'localize.api'])
	->namespace($this->namespace)
	->group(base_path('routes/blog-api.php'));

Route::prefix('admin-blog')
	->name('admin-blog.')
	->middleware('web')
	->namespace($this->namespace)
	->group(base_path('routes/blog-admin.php'));

所有设置完成,现在您可以使用该包了,以下是博客管理端和博客 API 的 URL

{your_domain}/admin-blog/blogs
{your_domain}/api/v1

谢谢