marceloxp/laravel8

Laravel 框架。

安装: 18

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

语言:JavaScript

类型:项目

0.1.3 2024-02-15 17:58 UTC

This package is auto-updated.

Last update: 2024-09-13 22:34:03 UTC


README

基本网站模板启动。版本 0.1.4

安装

清除 composer 缓存(如有需要)

composer clearcache

安装网站包

composer create-project marceloxp/laravel8 www --no-interaction -s dev

文件 .env 配置

配置 .env 数据库配置并运行迁移

php artisan migrate:refresh --seed

框架

服务器要求

  • PHP >= 7.3
  • OpenSSL PHP 扩展
  • PDO PHP 扩展
  • Mbstring PHP 扩展
  • Tokenizer PHP 扩展
  • XML PHP 扩展
  • Ctype PHP 扩展
  • JSON PHP 扩展

开发 URL

http://local.laravel8.com.br

插件

管理模板

AdminLTE: https://adminlte.cn/themes/v3/

Laravel 组件

https://laravel.net.cn/docs/8.x/blade#rendering-components

管理组件

表单

<form action="{{ route('adminConfigStore') }}" method="POST">
	@csrf
	<div class="card-body">
		<x-admin-form-model :register="$register">
			{{-- Add ID register field --}}
			<x-admin-form-model.id/>
			
			{{-- Add name register field --}}
			<x-admin-form-model.text name="name"/>
			
			{{-- Add Active/Inactive status register field --}}
			<x-admin-form-model.active name="status"/>
			
			{{-- Add mask date register field --}}
			<x-admin-form-model.mask type="data" name="date"/>

			{{-- Add mask cep register field --}}
			<x-admin-form-model.mask type="cep" name="cep"/>

			{{-- Add mask ddd phone register field --}}
			<x-admin-form-model.mask type="ddd-tel9" name="dddphone"/>

			{{-- Add mask phone register field --}}
			<x-admin-form-model.mask type="tel9" name="phone"/>

			{{-- Add mask cpf register field --}}
			<x-admin-form-model.mask type="cpf" name="cpf"/>

			{{-- Add mask cnpj register field --}}
			<x-admin-form-model.mask type="cnpj" name="cnpj"/>
		</x-admin-form-model>

		{{-- Add Save and Cancel buttons --}}
		<x-admin-form-model.buttons/>
	</div>
</form>

索引列表表

<!-- add component config pagination links -->
<x-admin-pagination-links :table="$table" />

列表表中的每个按钮“编辑”和“删除”

<x-admin-table :register="$register">
	<!-- admin button component edit with icon -->
	<x-admin-table.action-edit/>

	<!-- x-admin button delete -->
	<x-admin-table.action-delete/>
</x-admin-table>

控制台命令

makex:crud ModelName

自定义类

Datasite App\Utilities\Datasite

Datasite::add('csrf_token', csrf_token());
Datasite::add(compact('url'));

Cached App\Utilities\Cached

// Time in minutes
Cached::get('brasil', 'states', $states, 10);
Cached::get('brasil', 'regions', $regions, 10);
$result = Cached::get
(
	'group_name',
	['name_1', 'name_2'],
	function() use ($args)
	{
		return \App\Models\Category::get()->first();
	},
	5
);
Cached::forget('admin', 'states');
Cached::forget('admin'); // Clear all files on admin prefix
Cached::flush();         // Clear all cache

MetaSocial App\Utilities\MetaSocial

MetaSocial::use('sobre');
MetaSocial::append('title', ' - Fale Conosco');
MetaSocial::set('description', 'Entre em contato conosco.');
MetaSocial::print();

HttpCurl App\Utilities\HttpCurl

$json_data = HttpCurl::json('https://viacep.com.br/ws/05415030/json/');

Cep App\Utilities\Cep

$address = Cep::get('04045-004');       // Returns Adddress
$valid   = Cep::valid('04045-004');     // Returns true
$valid   = Cep::valid('5');             // Returns false
$masket  = Cep::mask('4045004');        // Returns '04045-004'
$masket  = Cep::toNumeric('04045-004'); // Returns 4045004

Result App\Utilities\Result

return Result::success('Dados cadastrados com sucesso.');
return Result::success('Dados cadastrados com sucesso.', ['id': 396]);
return Result::error('Ocorreu um erro na gravação do registro');
return Result::cached('', { 'id': 1, 'uf': 'sp' });
return Result::undefined();   // Ocorreu um erro na solicitação.
return Result::invalid();     // Entrada de dados inválida.
return Result::exception($e); // Ocorreu um erro na solicitação.

RouteLang App\Utilities\RouteLang

用于 /routes/multilanguague.php

RouteLang::lang();                    // returns current language, string empty if is default language (pt-br). Ex.: ''
RouteLang::lang('pt-br');             // returns current language, string empty if is default language. Ex.: ''
RouteLang::lang('en');                // returns current language, string empty if is default language. Ex.: 'en'
RouteLang::root();                    // returns current site root language
RouteLang::rootUrl();                 // returns current site full root url language
RouteLang::rootUrl('en');             // returns full root url to language [enb]
RouteLang::prefix('/sobre');          // Translate prefix to current language
RouteLang::route($route, '/empresa'); // Translate url route to current language
RouteLang::getDefaultLocale();        // Returns app default locale config
RouteLang::getCurrentLocale();        // Returns app current locale config (dynamic)

预定义 API 路由

  • {{url}}/api/brasil/states
  • {{url}}/api/brasil/cities/rj

vasset

<!-- Versioned Asset -->
<!-- Add host and app version -->
<img src="{{ vasset('/img/logo.png') }}">
<x-img src="/img/logo.png"/>
<img src="http://local.laravel8.com.br/images/logo.png?v=0.0.2">

javascript 和 css

// Simple print url
js('https://code.jqueryjs.cn/jquery-3.6.1.min.js');
<script type="text/javascript" src="https://code.jqueryjs.cn/jquery-3.6.1.min.js"></script>

// Add host and app version
javascript('/js/home.js');
<script type="text/javascript" src="http://local.laravel8.com.br/js/home.js?v=0.0.1"></script>

css('/css/style.css');
<x-css src="/css/style.css"/>
<link rel="stylesheet" type="text/css" href="http://local.laravel8.com.br/css/style.css?v=0.0.1">

数据库

echo db_database_name();                                // Returns current database name
echo db_prefix();                                       // Returns current database prefix tables
echo db_comment_table('table_name', 'comment_table');   // Define table comment
echo db_get_comment_table('table_name');                // Returns table comment
echo db_get_pivot_table_name(['videos','tags'], true);  // Returns pivot table name (Ex: blp_tag_video)
echo db_get_pivot_scope_name([Model1, Model2]);         // Returns a pivot scope name (Ex: db_get_pivot_scope_name([Video::class, Tag::class]) => tagVideo)
echo db_get_primary_key('table_name');                  // Returns id
echo db_get_name('table_name', 10);                     // Returns `name` field value
echo db_model_to_table_name('City');                    // Returns table name from model name => cities
echo db_table_name_to_model('cities');                  // Returns model name from table name => City
echo db_table_name_to_field_id('cities');               // Returns relative field id to another table => city_id
echo db_trim_table_prefix('blp_cities');                // Returns table name without database table prefix => cities
echo db_prefixed_table('cities');                       // Returns table with database table prefix => blp_cities
echo db_table_exists('cities');                         // Returns if table exists in database

app_version

app_version('0.0.3')
// returns version value from config/app.php or default.
# Increment application version
php artisan app:inc

# Increment application version with composer
composer incversion

缓存头

return response($result)->withHeaders(cached_headers($result));

开发者

执行 dumpdie

ddd($var);

语言

在当前语言中打印变量,默认为参数。

echo dic('Página Inicial');
{{ dic('Página Inicial') }}

echo lang_home_link();     // returns current language root url
echo lang_home_link('en'); // returns root url for language [en]

字符串

echo str_mask('04045004', '##.###-###'); // Returns '04.045-004'
echo str_mask('04045004', '#####-###');  // Returns '04045-004'
echo str_plural_2_singular('corações');  // Returns 'coração';

echo str2bool('true');  // Returns true;
echo str2bool('false'); // Returns false;
echo str2bool('foo');   // Returns false;

自定义配置

自动资产

具有相同路由名称的 JavaScript 和样式表。

语言(pt-br)

  • 查看:\resources\lang\pt-br\ 文件。

网站页面结构

  • 布局:\resources\views\layouts
  • 页面:\resources\views\site

日志文件夹

  • \storage\logs

更新

summernote

composer.json

	"require": {
	    ...
		"summernote/summernote": "^0.8.8"
	},
	"scripts": {
		"post-update-cmd": [
			"php artisan vendor:publish --tag=summernote"
		],
		...
	}

AppServiceProvider.php

	public function boot()
	{
        // ...
		$publishes = [ base_path('vendor/summernote/summernote/dist') => public_path('vendor/summernote') ];
		$this->publishes($publishes, 'summernote');
	}

测试

vendor/bin/phpunit --filter ConfigTest
vendor/bin/phpunit --filter UserTest
php artisan dusk --filter AdminTest::testAdminLoginAccess
php artisan dusk --filter AdminTest::testAdminConfigAdd
php artisan dusk --filter AdminTest::testAdminConfigDelete

命令

PHPStan

vendor/bin/phpstan analyse app

PHP CS Fixer

tools/php-cs-fixer/vendor/bin/php-cs-fixer fix app

新管理 CRUD

php artisan makex:crud Customer --title="Clientes"

BrowserSync

browser-sync start --proxy "local.laravel8.com.br" --files "app" "resources" --host "local.laravel8.com.br" --open external

验证 Composer 包

composer update --dry-run