Как писать код элегантно, я думаю, это голос каждого программиста. Я увлекся использованием фреймворка Laravel с момента моего первого знакомства с Laravel 4.2 в начале 15-го года. Я всегда хотел найти время, чтобы написать статьи об использовании Laravel и представить структуру Laravel от мелкого до глубокого.
Сегодня, используя плагин laravel-admin, я кратко расскажу о том, как элегантно писать код Laravel.
Создайте проект Laravel
Создать проект Laravel так же просто, как следовать официальной документации:
// 使用 Composer 下载 Laravel 安装程序
composer global require "laravel/installer"
// 创建 web 项目
laravel new web
Конкретная база данных конфигурации и т. д.:немного
Установите Laravel и смотрите официальный сайт:Потяните Ravel-China.org/docs/5.5/in…
Как установить Composer, смотрите мою предыдущую статьюШаг за шагом для создания серверной среды PHP
Установить laravel-админ
laravel-admin — это инструмент, который может быстро помочь вам создать фоновое управление.Он предоставляет такие функции, как компоненты страницы и элементы формы, которые могут помочь вам реализовать полнофункциональные функции фонового управления с очень небольшим количеством кода.
Примечание. Текущая версия (1.5) требует установки PHP 7+ и Laravel 5.5.
Взгляните на возможности laravel-admin:
- Встроенная система пользователей и разрешений
- model-grid поддерживает быстрое построение таблиц данных
- model-form поддерживает быстрое создание форм данных
- модель-дерево поддерживает быстрое построение древовидных данных
- Встроенные более 40 компонентов элементов формы и поддержка расширенных компонентов.
- Поддержка нескольких отношений модели в Laravel
- Поддержка нескольких баз данных, таких как mysql, mongodb, pgsql и т. д.
- Поддержка внедрения сторонних интерфейсных библиотек
- Веб-реализация базы данных и инструмента командной строки artisan
- Поддержка пользовательских диаграмм
- Различные общие веб-компоненты
- Поддержка загрузки локальных и oss-файлов
Благодаря этим функциям разработка системы фонового управления становится относительно простой.
Установите плагин:
composer require encore/laravel-admin "1.5.*"
// 发布资源:
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
// 安装
php artisan admin:install
С помощью трех простых команд вы можете настроить простую систему фонового управления.Учетная запись и пароль являются администраторскими.
Код в основном сосредоточен в \APP\Admin
Система по умолчанию предоставляет интерфейс Dashboard:
<?php
namespace App\Admin\Controllers;
use App\Http\Controllers\Controller;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Layout\Column;
use Encore\Admin\Layout\Content;
use Encore\Admin\Layout\Row;
class HomeController extends Controller
{
public function index()
{
return Admin::content(function (Content $content) {
$content->header('Test Dashboard');
$content->description('Description...');
$content->row(Dashboard::title());
$content->row(function (Row $row) {
$row->column(4, function (Column $column) {
$column->append(Dashboard::environment());
});
$row->column(4, function (Column $column) {
$column->append(Dashboard::extensions());
});
$row->column(4, function (Column $column) {
$column->append(Dashboard::dependencies());
});
});
});
}
}
Объединяя интерфейс и код, можно увидеть, что интерфейс в основном разделен на следующие части: заголовок, описание, две строки, а последняя строка содержит три модуля столбца; конкретный код размещен в коде Dashboard следующим образом:
<?php
namespace Encore\Admin\Controllers;
use Encore\Admin\Admin;
class Dashboard
{
/**
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public static function title()
{
return view('admin::dashboard.title');
}
/**
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public static function environment()
{
$envs = [
['name' => 'PHP version', 'value' => 'PHP/'.PHP_VERSION],
['name' => 'Laravel version', 'value' => app()->version()],
['name' => 'CGI', 'value' => php_sapi_name()],
['name' => 'Uname', 'value' => php_uname()],
['name' => 'Server', 'value' => array_get($_SERVER, 'SERVER_SOFTWARE')],
['name' => 'Cache driver', 'value' => config('cache.default')],
['name' => 'Session driver', 'value' => config('session.driver')],
['name' => 'Queue driver', 'value' => config('queue.default')],
['name' => 'Timezone', 'value' => config('app.timezone')],
['name' => 'Locale', 'value' => config('app.locale')],
['name' => 'Env', 'value' => config('app.env')],
['name' => 'URL', 'value' => config('app.url')],
];
return view('admin::dashboard.environment', compact('envs'));
}
/**
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public static function extensions()
{
$extensions = [
'helpers' => [
'name' => 'laravel-admin-ext/helpers',
'link' => 'https://github.com/laravel-admin-extensions/helpers',
'icon' => 'gears',
],
'log-viewer' => [
'name' => 'laravel-admin-ext/log-viewer',
'link' => 'https://github.com/laravel-admin-extensions/log-viewer',
'icon' => 'database',
],
'backup' => [
'name' => 'laravel-admin-ext/backup',
'link' => 'https://github.com/laravel-admin-extensions/backup',
'icon' => 'copy',
],
'config' => [
'name' => 'laravel-admin-ext/config',
'link' => 'https://github.com/laravel-admin-extensions/config',
'icon' => 'toggle-on',
],
'api-tester' => [
'name' => 'laravel-admin-ext/api-tester',
'link' => 'https://github.com/laravel-admin-extensions/api-tester',
'icon' => 'sliders',
],
'media-manager' => [
'name' => 'laravel-admin-ext/media-manager',
'link' => 'https://github.com/laravel-admin-extensions/media-manager',
'icon' => 'file',
],
'scheduling' => [
'name' => 'laravel-admin-ext/scheduling',
'link' => 'https://github.com/laravel-admin-extensions/scheduling',
'icon' => 'clock-o',
],
'reporter' => [
'name' => 'laravel-admin-ext/reporter',
'link' => 'https://github.com/laravel-admin-extensions/reporter',
'icon' => 'bug',
],
'translation' => [
'name' => 'laravel-admin-ext/translation',
'link' => 'https://github.com/laravel-admin-extensions/translation',
'icon' => 'language',
],
];
foreach ($extensions as &$extension) {
$name = explode('/', $extension['name']);
$extension['installed'] = array_key_exists(end($name), Admin::$extensions);
}
return view('admin::dashboard.extensions', compact('extensions'));
}
/**
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public static function dependencies()
{
$json = file_get_contents(base_path('composer.json'));
$dependencies = json_decode($json, true)['require'];
return view('admin::dashboard.dependencies', compact('dependencies'));
}
}
Таким образом, мы организуем код по частям. См. конкретный класс макета:class Content implements Renderable
Другие файлы статических ресурсов размещаются в каталоге /public/vendor/laravel-admin.
Для получения дополнительной информации, пожалуйста, обратитесь к официальному сайту laravel-admin:
laravel-admin.org/docs/#/zh/
написать демо
С помощью этого плагина laravel-admin создание списка фильмов можно выполнить всего несколькими командными строками, очень просто:
1. Постройте модель и создайте миграции:
php artisan make:model Movie -m
2. В Миграциях добавьте поле: имя
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateMoviesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('movies', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 50)->unique();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('movies');
}
}
3. Запустите миграцию, чтобы создать соответствующую базу данных:
php artisan migrate
4. С таблицей данных вам нужно вставить поддельные данные в таблицу для тестирования.
// 使用该插件创建 fake 数据
composer require fzaninotto/faker
5. Создайте сеялку
php artisan make:seeder MovieTableSeeder
В этом классе создайте 1000 поддельных данных:
<?php
use Illuminate\Database\Seeder;
class MovieTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
$faker = Faker\Factory::create();
for($i = 0; $i < 1000; $i++) {
App\Movie::create([
'name' => $faker->name
]);
}
}
}
бегать:
php artisan db:seed --class=MovieTableSeeder
Это очень просто, таблица данных напрямую заполнена 1000 фрагментами поддельных данных:
6. Создайте контроллер ресурсов
php artisan admin:make MovieController --model=App\\Movie
Таким образом, имеется базовый контроллер для добавления, удаления, изменения и проверки, а также функций списка фильмов.
7. Создайте маршрут
$router->resource('movies', MovieController::class);
8. Добавить в меню администратора
Среди них путь, на который следует обратить внимание, это:
Если uri заполняет часть пути, которая не содержит префикса маршрутизации, например, полный путьhttp://localhost:8000/admin/demo/users, затем заполните demo/users, если вы хотите добавить внешнюю ссылку, просто введите полный URL-адрес, напримерlaravel-admin.org/.
Изображение выше также добавляет эффект меню фильмов слева.
ЭтотФоновое управление ресурсом simple movie завершено, введите ссылку в браузере:
Web.app/admin/movie…
Вы можете увидеть более полный список фильмов:
В частности, существуют обычные функции, такие как добавление, экспорт, фильтрация, работа (удаление), отмена, разбиение по страницам, изменение и удаление, как показано на следующих снимках экрана:
Суммировать
С Laravel и laravel-admin вам в основном не нужно писать какой-либо код, вы можете завершить «полностью функциональную» фоновую работу ресурса, набрав несколько команд. Это очень облегчает наше развитие.
Общая командная строка и код выглядят следующим образом
php artisan make:model Movie -m
php artisan migrate
composer require fzaninotto/faker
php artisan make:seeder MovieTableSeeder
php artisan db:seed --class=MovieTableSeeder
php artisan admin:make MovieController --model=App\\Movie
$router->resource('movies', MovieController::class);
Фреймворки и плагины с открытым исходным кодом иногда очень удобны для разработки, поэтому поиск высококачественных фреймворков и библиотек с открытым исходным кодом также повышает нашу производительность.
Как организован код laravel-admin, вы можете обратиться к разработке веб-сайта для получения подробной информации. Во-первых, согласно представлению на официальном веб-сайте, хорошо используйте laravel-admin, затем изучите его исходный код и дизайн кода и, наконец, используйте суть для себя.
"Заканчивать"
coding01 с нетерпением ждет вашего дальнейшего внимания
Спасибо, что тоже это увидели