hoangphi / hwa-tools
A package about helper function and meta tools. Development by Phi Hoang
Requires
- php: ^7.2|^8.0
- ext-curl: *
- ext-json: *
- illuminate/support: ^5.8|^6|^7|^8
Suggests
- hwavina/hwa-meta: ^1.0
README
About
hwa-tools is a helper package. It helps us to build and develop faster with pre-built functions. This saves a lot of time on future projects.
We share this package to give programmers an extra useful library. We hope people use this package not for commercialization or profit of any kind.
And finally, hope to receive more contributions and shares from all of you.
Thank you very much 🧡
Install
- You can install the package via composer:
composer require hoangphi/hwa-tools
- Optional: The service provider will automatically get registered. Or you may manually add the service provider in your
config/app.php
file:
'providers' => array( // ... HoangPhi\HwaTools\Providers\HwaToolServiceProvider::class, );
- You can customize the
config/hwa_tools.php
config file . If you customize fileconfig/hwa_tools.php
. You need to run the command below to clear cache and update the changes.
php artisan config:cache
# or
php artisan optimize:clear
Default config file contents
You can view the default config file contents at:
https://github.com/hoangphidev/hwa-tools/blob/master/config/hwa_tools.php
Usage
Helpers
Since this is a package with helper functions, after installing the package into the project, people can call the helper functions everywhere in the project.
Here are some helper functions we've built:
- Commons
app_name(); // Get website name, project name - Ex: Laravel activate_status(); // Get status activate - Ex: 1 - activate deactivate_status(); // Get status deactivate - Ex: 2 - deactivate gender_male(); // Get gender male - Ex: 1 - male gender_female(); // Get gender female - Ex: 1 - female page_limit(); // Get page limit default in pagination - Ex: 12 check_active_menu($menu, $url); // Check active menu. $menu is router menu
- Datetime
current_day(); // Get current day - Ex: 01 current_month(); // Get current month - Ex: 07 current_year(); // Get current year - Ex: 2021 current_date(); // Get current - Ex: 2021-07-01 00:00:01 current_date('H:i:s d/m/Y'); // Get current date with format - Ex: 00:00:01 01/07/2021 custom_date('2021-07-01 00:00:01', 'H:i:s d/m/Y'); // Get customer date with format - Ex: 00:00:01 01/07/2021 custom_date('2021-07-01 00:00:01', 'H:i:s d/m/Y', 'en_EN'); // Get customer date with format and locale for diffForHumans - Ex: 00:00:01 01/07/2021 or 1 seconds or 1 minutes. get_list_timezones(); // Get list timezones - response array
- Images
storage_folder_path('users'); // Check and create folder if not existed in storage. storage_image_path('users', '1.jpg') // Check and get image from image storage path. storage_image_url('users', '1.jpg') // Get public asset url image from storage.
- Ip info
get_user_agent(); // Get user agent get_current_ip(); // Get current client ip get_ip_info('127.0.0.1'); // Get info ip from http://api.ipstack.com get_client_ip(); // Get client ip from https://ipinfo.io code_to_country('EN'); // Convert country code to country name. Ex: EN to English get_os(); // Get OS client using get_client_browser(); // Get client browser using get_device(); // Get client device using get_country_list(); // Get list country world get_list_currency(); // Get list currency
- Response API
send_ok_response('Message.', ['name' => 'Phi Hoang', 'phone' => '0989324221']); // Response normal with param 1 is message, param 2 is object or array data. send_ok_response('Message.', '<paginate_items_object>', true); // Response with param 1 is message, param 2 is data paginate include results with meta, param 3 is boolean true to paginate. send_created_response('Message.', 1); // Response with code 201 - param 1 is message, param 2 is id. send_error_response('Message', 400); // Response error with code 400 is default. Message compare with code [401, 404, 403, 500].
MetaTools
This tool helps you to easily manage the extended data fields of certain objects.
- Create Meta Class with command.
Example: We need CustomerMeta. This tools help us make model file and migration file.
php artisan hwa:make:meta Customer -m
The above command we have added -m to create the migration file.
- Add allow type to
config/hwa_tools.php
'allow_type' => [ ..... 'customer' => ['id', 'customer_id'], ],
- You need to run the command below to clear cache and update the changes.
php artisan config:cache
# or
php artisan optimize:clear
- Run command to migrate the meta migration file to database
php artisan migrate
After completing the above configuration steps you can use the methods available in the meta model in the classes you want.
// Example CustomerMeta:_update(1, 'gender', 'male'); // update or add new gender for customer has id is 1
Beside the functions and methods we have built, people can also build their own by inheriting our classes.
Changelog
Please see CHANGELOG for more information what has changed recently.
Security
If you discover a security vulnerability within hwa-tools, please send an e-mail to Phi Hoang via hoangphidev@gmail.com. All security vulnerabilities will be promptly addressed.
Credits
License
The Laravel framework is open-sourced software licensed under the MIT license.