cherif/algerian-mobile-phone-number-laravel
Laravel integration for the cherif/algerian-mobile-phone-number value object. Provides an Eloquent cast to store/read Algerian mobile numbers as a value object, plus a validation rule for request input. Install via Composer and use in models/forms.
Allows to use cherif/algerian-mobile-phone-number value object with Laravel.
The recommended way of installation is by using Packagist and Composer.
The following command should be executed in order to add the package as a requirement to composer.json of a project:
$ composer require cherif/algerian-mobile-phone-number-laravel
The package have 2 main classes to use Cherif\AlgerianMobilePhoneNumber\Laravel\Casts\AlgerianMobilePhoneNumberCast and Cherif\AlgerianMobilePhoneNumber\Laravel\Rules\AlgerianMobilePhoneNumberRule to cast models attributes from/to the phone number value object and validate the request respectively:
To use Cherif\AlgerianMobilePhoneNumber\AlgerianMobilePhoneNumber\AlgerianMobilePhoneNumber value object instance as Eloquent model attribute use the casting class in the casts model's property like the following:
namespace App\Models;
use Cherif\AlgerianMobilePhoneNumber\Laravel\Casts\AlgerianMobilePhoneNumberCast;
use Illuminate\Database\Eloquent\Model;
class Customer extends Model
{
protected $casts = [
'mobile_phone_number' => AlgerianMobilePhoneNumberCast::class
];
}
The definition above allows to use the mobile_phone_number as value object when reading the attribute, the casting to string value will be handled during setting the value and persisting the model in the database.
The mobile phone validator is Cherif\AlgerianMobilePhoneNumber\Laravel\Rules\AlgerianMobilePhoneNumberRule it can be used with the request to validate the input:
use Cherif\AlgerianMobilePhoneNumber\Laravel\Rules\AlgerianMobilePhoneNumberRule;
// ...
/**
* Store a new customer.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$validatedData = $request->validate([
'mobilePhoneNumber' => ['required', new AlgerianMobilePhoneNumberRule],
]);
// The customer is valid...
}
Contributions are welcome to make this library better.
$ git clone git@github.com:cherifGsoul/algerian-mobile-phone-laravel.git
and enter to the cloned repository directory.
$ composer install
$ ./vendor/bin/phpunit
How can I help you explore Laravel packages today?