2017 © Pedro PelĆ”ez
 

project laravel

The Laravel Framework.

image

marceloxp/laravel

The Laravel Framework.

  • Wednesday, May 30, 2018
  • by marceloxp
  • Repository
  • 1 Watchers
  • 0 Stars
  • 11 Installations
  • HTML
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

Laravel Boilerplate

Basic site boilerplate start. Version 0.4.4, (*1)

Install

Clear compose cache (if needs), (*2)

composer clearcache

Install Site Package, (*3)

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

File .env configuration

Configure .env database config and run migration, (*4)

php artisan migrate:refresh --seed

Configure cron job

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Framework

Server Requirements

  • PHP >= 7.2.5
  • BCMath PHP Extension
  • Ctype PHP Extension
  • Fileinfo PHP extension
  • JSON PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension

Dev URL

http://www.local.laravel-boilerplate.com.br, (*5)

Updates

summernote

composer.json, (*6)

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

AppServiceProvider.php, (*7)

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

Plugins

Plugin Address
shridharkaushik29/laravel-hooks https://github.com/shridharkaushik29/laravel-hooks
digitalnature/php-ref https://github.com/digitalnature/php-ref
barryvdh/laravel-debugbar https://github.com/barryvdh/laravel-debugbar
marceloxp/laravel_commands https://github.com/marceloxp/laravel_commands
webreinvent/laravel-nestable https://github.com/atayahmet/laravel-nestable
ezyang/htmlpurifier https://github.com/ezyang/htmlpurifier
laravelcollective/html https://github.com/LaravelCollective/html
summernote/summernote https://github.com/summernote/summernote
technoknol/log-my-queries https://github.com/technoknol/LogMyQueries

Libraries

Local Library Site Description
Global cjsbaseclass.js https://www.npmjs.com/package/cjsbaseclass Base JS class
Admin prism.js http://prismjs.com/ Syntax highlighter
Admin sweetalert.js https://sweetalert.js.org/ A beautiful replacement for messages
Admin RowSorter.js https://github.com/arteyazilim/rowsorter/ Drag & drop table row sorter pluging with touch support for Vanilla JS and jQuery

Admin Template

AdminLTE: https://adminlte.io/themes/AdminLTE/, (*8)

Custom Classes

Datasite \App\Http\Utilities\Datasite

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

datasite_add('csrf_token', csrf_token());
datasite_add(compact('url'));

Cached \App\Http\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\Http\Utilities\MetaSocial

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

HttpCurl \App\Http\Utilities\HttpCurl

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

Cep \App\Http\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\Http\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\Http\Utilities\RouteLang

Used in /routes/multilanguague.php, (*9)

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)

Predefined API routes

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

Hooks

Hook Location Description
admin_index_search_fields_{table_name} Index Fields in search Combobox
admin_index_sort_fields_{table_name} Index Fields in sort Combobox
admin_index_{table_name}_{field_name} Index Before print field on index table
admin_index_title_align_{table_name}_{field_name} Index Define grid title alignment
admin_index_field_align_{table_name}_{field_name} Index Define grid field record alignment
admin_show_{table_name}_{field_name} Show Before print field on show register
admin_edit_{table_name}_{field_name} Add/Edit Before print field on add/edit register
master_model_field_type_{table_name}_{field_name} Master Model Before get field type register

Helpers

admin

// ['inativo','nĆ£o','i','n','no','0','excluido'])) ? 'red' : 'green';
echo admin_label_status($value);

// bootstrap badge
echo admin_badge_status($value);

// ['RJ' => 'Rio de Janeiro', 'SP' => 'SĆ£o Paulo']
echo admin_select($p_field_name, $p_options, $p_field_value, $p_required, $p_add_text_select = false)

// ['RJ', 'SP']
echo admin_select_simple($p_field_name, $p_options, $p_field_value, $p_required, $p_add_text_select = false)

echo admin_select_simple_with_add_button($p_field_name, $p_options, $p_field_value, $p_required, $p_add_text_select = false)

Bootstrap

echo alert_success('Mensagem enviada com sucesso.');
echo alert_danger('Ocorreu um erro na solicitaĆ§Ć£o!');
echo print_alert(); // Auto print messages from Session

Money

>>> use \App\Http\Utilities\Money;

## Basic ------------------------------------------------
>>> $var = new Money(2.5);
=> App\Http\Utilities\Money {
     +value: 2.5,
     +formated: "2,50",
   }
>>> $var->value;
=> 2.5
>>> $var->formated;
=> "2,50"
>>> $var->getRaw();
=> "250"

## Increment --------------------------------------------
>>> $var->inc(3.50);
=> App\Http\Utilities\Money {
     +value: 6.0,
     +formated: "6,00",
   }

## Create another Money object
>>> $another = new Money(1.00);
=> App\Http\Utilities\Money {
     +value: 1.0,
     +formated: "1,00",
   }

## Increment using Money Object -------------------------
>>> $var->inc($another);
=> App\Http\Utilities\Money {
     +value: 7.0,
     +formated: "7,00",
   }

DB

echo db_database_name();                                // Returns current database name
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_select_one(Model, ['fields'], ['where'], true); // Returns only one register (Ex: echo db_select_one(\App\Models\City::class, ['id','name'], ['name' => 'SĆ£o Paulo'], true) => {"id":5325,"name":"SĆ£o Paulo"})
echo db_select_id(Model, ['where'], false);             // Returns only if by where (Ex: echo db_select_id(\App\Models\City::class, ['name' => 'SĆ£o Paulo'], true) => 5325)
echo db_model_to_table_name('SchameName\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_model_path('cities');             // Returns path model from table name => \App\Models\City
echo db_table_name_to_field_id('cities');               // Returns relative field id to another table => city_id
echo db_table_exists('cities');                         // Returns if table exists in database

vasset

<!-- Versioned Asset -->
<!-- Add host and app version -->
<img src="{{ vasset('/img/logo.png') }}">
<img src="https://wwww.site.com.br/img/logo.png?v=0.0.2">

javascript and css

// Add host and app version
javascript('/js/main.js');
>

css('/css/style.css');
<link rel="stylesheet" type="text/css" href="https://wwww.site.com.br/css/style.css?v=0.0.1">

app_version

app_version('0.0.3')
// returns version value from config/app.php or default.

cached_headers

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

developer

Execute dump and die., (*10)

ddd($var);

lang

Prints variable in current language, defaults to parameter., (*11)

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]

string

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;

Custom configs

Config Description
admin.php Menu
brasil.php Estados
cep.php Faixas de CEP por estado
colors.php Bootstrap colors
metasocial.php Headers metatags
social.php Facebook, Twitter, etc
hook.php On/Off Print Admin hooks
codetrait.php Length of model uniq code
tables.php Custom configs on admin tables
payment.php Payments Type

Automatic Assets

Javascripts and Stylesheets with same route name., (*12)

URL Javascript CSS
http://site.com.br/faleconosco /js/faleconosco.js /css/faleconosco.css
http://site.com.br/sobre/empresa /js/sobre_empresa.js /css/sobre_empresa.css

Language (pt-br)

  • See: \resources\lang\pt-br\ files.

Site pages structure

  • Layout: \resources\views\layouts
  • Pages: \resources\views\site

Logs Folder

  • \storage\logs

Custom Buttons on Admin Index

On Controller Admin => function index, add:, (*13)

admin_table_index_set_button('table_name', 'button_id', 'type', 'button_style', button_disabled, 'font-awesome-icon', 'Button Text', 'Confirm Message');
button_id         : HTML Element ID and Route
type              : many, one
button_style      : btn-default, btn-primary, btn-success, btn-info, btn-danger, btn-warning
button_disabled   : true, false
font-awesome-icon : <https://fontawesome.com/icons?d=gallery&m=free>
// Example:
admin_table_index_set_button('users', 'btn-send-mail', 'many', 'btn-success', true, 'fas fa-envelope', 'Send Mail', 'Deseja enviar os e-mails para os registros selecionados?');

// Ajax Controller:
public function onUsersBtnSendMail(Request $request, $ids)
{
    return Result::success('SolicitaĆ§Ć£o efetuada com sucesso.', $ids);
}

Route: http://www.host.com.br/admin/ajax/{table}/{button_id} Controller: AjaxController Action: Camel Case of table and button_id. Example AjaxController->onUsersBtnSendMail, (*14)

The Versions