mdaliyan / farsi-request by mdaliyan

A (Laravel Request Transformer) that replaces Arabic characters with Farsi characters, and auto-converts numbers in parameters that you want.
716
11
2
Package Data
Maintainer Username: mdaliyan
Maintainer Contact: md.aliyan@gmail.com (Mohammad Aliyan)
Package Create Date: 2016-10-23
Package Last Update: 2020-05-26
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-12-22 03:16:30
Package Statistics
Total Downloads: 716
Monthly Downloads: 3
Daily Downloads: 0
Total Stars: 11
Total Watchers: 2
Total Forks: 2
Total Open Issues: 1

Farsi Request

Build Status License

Farsi Request replaces arabic characters like ي ك ة ٤ ٥ ٦ with Farsi characters like ی ک ه ۴ ۵ ۶ in all your requests parameters automatically.

If you are building a farsi website you might end up having some users who use Arabic keyboard. These users may cause problems to your content or experience some confusion while searching among your content.

This package does two things for you:

  1. Replaces Arabic characters with farsi standard characters

  2. Automatically Converts Farsi or English Numbers to each other in your desired request parameters to one another. For example:

    • Product names, like R2D2 should never have farsi numbers, right?
    • user's phone number

Install

$ composer require mdaliyan/farsi-request

Usage

1. Auto-Replace arabic characters

Add this middleware to your kernel file app/Http/Kernel.php

protected $middleware = [
    ...
   \Mdaliyan\FarsiRequest\Middleware\ReplaceArabicCharacters::class,
];

2. Auto-Replace numbers in request parameters

Add this trait and two private properties to your Request Class. Then add the parameters that should have farsi or english numbers to the desired property.

use Mdaliyan\FarsiRequest\Traits\ReplaceNumbers;

class SomeRequest extends FormRequest
{
    use ReplaceNumbers;

    private $mustHaveEnglishNumbers = ['id','email','phone_number'];
    private $mustHaveFarsiNumbers = ['post_content','author_name'];

    /**
     * Determine if the user is authorized to make this request.
     * @return bool
     */
    public function authorize()
    {
        return true;
    }
    ...

Note: this feature ignores numbers inside HTML tags:

    This line with the numbers 889 and an image: <img src="/media/media2.jpg">
    
     <!-- will be converted to: -->
    
    This line with the numbers ۸۸۹ and an image: <img src="/media/media2.jpg">