با تعریف یک middle به نام minifier ترتیبی بدهید که html ارسال شده از سمت سرور برای کاربران minify شده باشد.
برای مثال بتوان از آن به شکل زیر استفاده کرد
```php
Route::middleware('minifier')->view('welcome.blade.php');
```
# نکات
شما فقط مجاز به ایجاد تغییرات در دو فایل زیرهستید و توجه داشته باشید که از تغییرات موجود در سایر فایل ها به هنگام داوری صرف نظر خواهد شد.
```
app/Http/Kernel.php
app/Http/middleware/Minifier.php
```
از قطعه کد زیر میتوانید جهت فشرده سازی html استفاده کنید.
ورودی و خروجی این تابع از جنس string هستند.
```php
function minifyHTML($htmlString)
{
$replace = [
'<!--(.*?)-->' => '', //remove comments
"/<\?php/" => '<?php ',
"/\n([\S])/" => '$1',
"/\r/" => '', // remove carriage return
"/\n/" => '', // remove new lines
"/\t/" => '', // remove tab
"/\s+/" => ' ', // remove spaces
];
return preg_replace(array_keys($this->replace), array_values($this->replace), $htmlString);
}
```
محتوای اولیه ی فایل
`app/Http/middleware/Minifier.php`
```php
<?php
namespace App\Http\Middleware;
use Closure;
class Minifier
{
public function handle($request, Closure $next)
{
}
}
```
#### آنچه باید برای ما بفرستید
برای حل سوال ابتدا فریم ورک لاراول را باید روی سیستم خود دانلود کنید.
در نهایت پس از اعمال تغییرات، تمامی فایل ها و فولدرهای لاراول (به جز پوشه ی vendor) را به صورت zip در آورده و آپلود کنید.
همان طوری که می دانید فریم ورک لاراول برای لاگین کردن کاربر، تابع زیر را در اختیار ما قرار می دهد
```php
auth()->attempt(['email' => 'hello@gmail.com', 'password' => 123456]);
```
که تنها در صورت صحیح بودن رمز عبور ، کاربر لاگین می شود.
ما میخواهیم با تعریف یک provider جدید برای session guard و ست کردن آن در فایل config/auth.php، رفتار تابع attempt را طوری تغییر دهیم که هر پسوردی را به عنوان پسورد صحیح کاربر از ما قبول کند و یوزر لاگین شود.
با این کار برنامه نویس در مراحل کدنویسی پروژه مجبور نخواهد بود برای تست کردن پروژه اش، پسورد کاربران را به خاطر بسپارد و لاگین کردن در پنل برای او ساده تر می شود.
و در نهایت قبل از لانچ کردن پروژه از طریق فایل config/auth.phpرفتار تابع attempt را به حالت عادی باز گرداند تا با پسورد های واقعی کار کند.
# نکات
حتی الامکان از آخرین نسخه ی فریم ورک لاراول استفاده کنید.
در شروع کار جهت داشتن یک نمونه ی اولیه از UserProvider می توانید از کپی فایلی که در مسیر زیر در هسته ی لاراول وجود دارد استفاده کنید
و آن را طبق نیازتان تغییر دهید.
`/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php`
شما مجاز به تغییر دادن و یا ایجاد هر فایل به دلخواه خودتان هستید.
#### آنچه باید آپلود کنید:
تمامی فایل ها و پوشه های فریم ورک لاراول به جز پوشه vendor را به صورت zip در آورده و آپلود کنید.
شامل پوشه های:
app, bootstrap, config, database, resources, public, routes, storage, composer.json, ...