آموزش php (وبلاگ یک پی اچ پی کار)



برای تغییر متن بازگشتی توکن اشتباه در پاسپورت لاراول به مسیر زیر برید :

app/Exceptios/Handler.php

و متد زیر رو به کلاس داخلش اضافه کنید و ساختار بازگشتی رو خودتون با سلیقه خودتون تغییر بدید :

 

    protected function unauthenticated($request, AuthenticationException $exception)

    {

        if ($request->expectsJson()) {

            /** return response()->json(['error' => 'Unauthenticated.'], 401); */

                $response = ['status' => 'error','message' => 'You pass invalid token'];

                return response()->json($response);

        }

        return redirect()->guest('login');

    }


در لاراول شما برای تغییر پیش فرض پوشه ی public به public_html شما نیاز دارید که در دو فایل تغییراتی ایجاد کنید تا لاراول متوجه شود که اطلاعات را از پوشه ی public_html بخواند.

همانطور که می دانید بصورت پیش فرض در لاراول روت پروژه پوشه ی public می باشد. اما در برخی مواقع مثلا در هنگام استفاده از cpanel و directAdmin باید روت پیش فرض برنامه پوشه ی public_html باشد.

در لاراول شما برای تغییر پیش فرض پوشه ی public به public_html شما نیاز دارید که در دو فایل تغییراتی ایجاد کنید تا لاراول متوجه شود که اطلاعات را از پوشه ی public_html بخواند.

برای اینکار ابتدا پوشه ی index.php موجود در فایل public پروژه ی خود را باز نمایید خط زیر را پیدا کنید:

$app = require_once __DIR__.'//bootstrap/app.php';

پس از خط بالا کد زیر را قرار دهید و قایل مربوطه را ذخیره کنید:

// set the public path to this directory
$app->bind('path.public', function() {
    return __DIR__;
});

 

حال فایل \App\Providers\AppServiceProvider.php را باز کنید و کد زیر را در متد register بصورت زیر قرار دهید:

public function register()
{
    // .

    $this->app->bind('path.public', function() {
        return base_path('public_html');
    });
}

 

فایل را ذخیره و لاراول را در سرور خود اجرا نمایید. متوجه خواهید شد که مشکل رفع شده است.


برای اجرای ادامه دار job ها در لاراول یک کران جاب بصورت زیر ایجاد کنید :

 

 
/usr/local/bin/php /home/my_project_path/artisan queue:listen --tries=10

 

البته روش بالا برای اجرای این دستور اصلا پیشنهاد نمیشه و صرفا برای این بود که شما بدونید که با کران جاب هم میتونیم دستورات داخلی لاراول رو هم که با artisan اجرا میکنیم رو هم اجرا کنیم.

چرا که این روش باعث میشه منابع سیستم بشدت مشغول بشن و روش بهتر استفاده از زمانبد خود لاراول هست و یک کران جاب برای اجرای زمانبند لاراول که خواستم مقاله ای مفصل بنویسم که سرچ زدم دیدم دوست عزیزی این مقاله رو نوشتن گفتم که اینجا دیگه لینکشو بزارم و دوباره ننویسم که چه کاریه !

این هم لینک مقاله اش :

نمایش


سلام دوستان . برای فرمت بندی اعدادی که نقش پول رو در صفحات html شما رو دارند با زبان جاوا اسکریپت به شرح زیر میباشد :

 

<script>
// Create our number formatter.
var formatter = new Intl.NumberFormat('fa-IR', {
currency: 'IRR',
});
 
 
formatter.format(2500); // خروجی 2,500
 
</script>

 


برای ارسال ایمیل حاوی لینک تایید در زمان ثبت نام کاربر تغییراتی را در مدل User باید انجام بدید و یکسری از موارد دیگر رو نیز لازم است تا انجام بدید.

وارد مدل User خود شوید و متد زیر را به آن اضافه نمائید :

public function sendEmailVerificationNotification()
{
dispatch(new SendVerificationEmailJob($this));
}

 

البته توجه کنید قبلش یک job برای ارسال ایمیل تاییدیه ایجاد کنید که من ایجاد کردم و اسمشو گذاشتم SendVerificationEmailJob  و سپس وارد job مربوطه شوید و متد handle این کلاس رو به شکل زیر تغییر بدید :

public function handle()
{
$this->user->notify(new VerifyEmailQueued($this->user));
}

 

در اینجا هم میبینید که یک نوتیفیکیشن از قبل ایجاد کردیم و فراخوانی اش هم اینجا انجام دادیم که بهش یوزر فعلی رو هم پاس میدیم.

محتویات داخل فایل job به شکل زیر خواهد بود :

<?php

 

namespace App\Jobs;

 

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Mail;
use App\Mail\ConfirmEmail;
use App\Notifications\VerifyEmailQueued;

 

class SendVerificationEmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

 

protected $user;

 

public function __construct($user)
{
$this->user = $user;
}

 

public function handle()
{
$this->user->notify(new VerifyEmailQueued($this->user));
}
}

 

حالا وارد فایل نوتیفیکیشن میشیم و در کانستراکتور این کلاس مقدار متغییر  user رو دریافت میکنیم 

public function __construct($user)
{
$this->user = $user;
}

سپس متد toMail رو هم به صورت زیر بنویسید :

public function toMail($notifiable)
{
$temporarySignedURL = URL::temporarySignedRoute('verification.verify', \Carbon\Carbon::now()->addMinutes(60), ['id' => $notifiable->getKey()]);
return (new MailMessage)
->subject(sprintf("فعالسازی حساب کاربری"))
->action('فعالسازی حساب کاربری',$temporarySignedURL)
->line('Thank you for using our application!');
}

 

 

 

 


تبلیغات

آخرین ارسال ها

آخرین جستجو ها

مورد عجیب هانس شنیر سیمرغ دندانپزشکی الماس شمیران نو انجمن شعر و ادب جمالی https://euroonline.org فانوس شب پمپ وکیوم مکانیکل سیل English013 ورزش تک