نسخه:

راهنمای ارتقا

ارتقا به 4.2 از 4.1

PHP 5.4+

لاراول 4.2 به PHP 5.4.0 یا بالاتر نیاز دارد.

پیش فرض های رمزگذاری

یک گزینه جدید در فایل پیکربندی cipher خود اضافه کنید. app/config/app.php مقدار این گزینه باید باشد MCRYPT_RIJNDAEL_256 .

'cipher' => MCRYPT_RIJNDAEL_256

این تنظیم ممکن است برای کنترل رمز پیش فرض استفاده شده توسط امکانات رمزگذاری لاراول استفاده شود.

نکته: لاراول 4.2 رمز پیش فرض را از (AES) تغییر می دهد MCRYPT_RIJNDAEL_256 که MCRYPT_RIJNDAEL_128 امن ترین رمز در نظر گرفته می شود. MCRYPT_RIJNDAEL_256 همانطور که در بالا پیشنهاد شد، برای رمزگشایی کوکی‌ها/مقدارهایی که در لاراول <= 4.1 رمزگذاری شده‌اند، نیاز به تغییر رمز به .

مدل‌های حذف نرم اکنون از ویژگی‌ها استفاده می‌کنند

اگر از مدل‌های حذف نرم استفاده می‌کنید، softDeletes ویژگی حذف شده است. اکنون باید از SoftDeletingTrait مشابه استفاده کنید تا:

use Illuminate\Database\Eloquent\SoftDeletingTrait;
 
class User extends Eloquent {
use SoftDeletingTrait;
}

همچنین باید به صورت دستی deleted_at ستون را به ویژگی خود اضافه کنید dates :

class User extends Eloquent {
use SoftDeletingTrait;
 
protected $dates = ['deleted_at'];
}

API برای تمام عملیات حذف نرم یکسان باقی می ماند.

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

مشاهده / محیط صفحه بندی تغییر نام داد

اگر مستقیماً به Illuminate\View\Environment کلاس یا Illuminate\Pagination\Environment کلاس ارجاع می دهید، کد خود را به مرجع Illuminate\View\Factory و Illuminate\Pagination\Factory در عوض به روز کنید. این دو کلاس تغییر نام داده اند تا عملکرد آنها را بهتر نشان دهند.

پارامتر اضافی در ارائه دهنده صفحه بندی

اگر کلاس را گسترش می دهید Illuminate\Pagination\Presenter ، امضای متد انتزاعی getPageLinkWrapper برای اضافه کردن آرگومان تغییر کرده است rel :

abstract public function getPageLinkWrapper($url, $page, $rel = null);

رمزگذاری صف Iron.Io

اگر از درایور صف Iron.io استفاده می کنید، باید یک encrypt گزینه جدید به فایل پیکربندی صف خود اضافه کنید:

'encrypt' => true

ارتقاء به 4.1.29 از <= 4.1.x

Laravel 4.1.29 نقل قول ستون را برای همه درایورهای پایگاه داده بهبود می بخشد. این برنامه شما را از برخی آسیب‌پذیری‌های تخصیص انبوه در هنگام عدم استفاده از fillable ویژگی در مدل‌ها محافظت می‌کند. اگر از ویژگی روی مدل های خود برای محافظت در برابر تخصیص انبوه استفاده می کنید fillable ، برنامه شما آسیب پذیر نیست. با این حال، اگر از یک آرایه کنترل‌شده توسط کاربر استفاده می‌کنید guarded و آن را به یک تابع نوع «به‌روزرسانی» یا «ذخیره» منتقل می‌کنید، باید 4.1.29 فوراً آن را ارتقا دهید زیرا ممکن است برنامه شما در معرض خطر تخصیص انبوه باشد.

برای ارتقاء به لاراول 4.1.29، به سادگی composer update . هیچ تغییری در این نسخه ارائه نشده است.

ارتقا به 4.1.26 از <= 4.1.25

لاراول 4.1.26 بهبودهای امنیتی را برای کوکی‌های «مرا به خاطر بسپار» معرفی می‌کند. قبل از این به‌روزرسانی، اگر یک کاربر مخرب دیگر یک کوکی حافظه ربوده شود، کوکی برای مدت طولانی معتبر باقی می‌ماند، حتی پس از اینکه صاحب واقعی حساب رمز عبور خود را بازنشانی کند، از سیستم خارج شود و غیره.

این تغییر مستلزم افزودن یک remember_token ستون جدید به جدول پایگاه داده شما users (یا معادل آن) است. پس از این تغییر، هر بار که کاربر به برنامه شما وارد می شود، یک توکن جدید به آن اختصاص داده می شود. هنگامی که کاربر از برنامه خارج می شود، توکن نیز به روز می شود. پیامدهای این تغییر عبارتند از: اگر یک کوکی "مرا به خاطر بسپار" ربوده شود، صرفاً خروج از برنامه، کوکی را باطل می کند.

مسیر را ارتقا دهید

ابتدا، یک remember_token VARCHAR(100)، TEXT یا معادل آن را به users جدول خود اضافه کنید.

در مرحله بعد، اگر از درایور احراز هویت Eloquent استفاده می کنید، User کلاس خود را با سه روش زیر به روز کنید:

public function getRememberToken()
{
return $this->remember_token;
}
 
public function setRememberToken($value)
{
$this->remember_token = $value;
}
 
public function getRememberTokenName()
{
return 'remember_token';
}

توجه: با این تغییر تمام جلسات «مرا به خاطر بسپار» نامعتبر می‌شود، بنابراین همه کاربران مجبور می‌شوند دوباره با برنامه شما احراز هویت کنند.

نگهدارنده های بسته

دو روش جدید به رابط اضافه شد Illuminate\Auth\UserProviderInterface . پیاده سازی های نمونه ممکن است در درایورهای پیش فرض پیدا شوند:

public function retrieveByToken($identifier, $token);
 
public function updateRememberToken(UserInterface $user, $token);

همچنین Illuminate\Auth\UserInterface سه روش جدید شرح داده شده در "مسیر ارتقا" را دریافت کرد.

ارتقا به 4.1 از 4.0

ارتقاء وابستگی composer شما

برای ارتقاء برنامه خود به لاراول 4.1، laravel/framework نسخه خود را به فایل 4.1.* خود تغییر دهید composer.json .

جایگزین کردن فایل ها

فایل خود public/index.php را با این نسخه جدید از مخزن جایگزین کنید .

فایل خود artisan را با این نسخه جدید از مخزن جایگزین کنید .

افزودن فایل‌ها و گزینه‌های پیکربندی

aliases آرایه ها و آرایه های خود را providers در app/config/app.php فایل پیکربندی خود به روز کنید. مقادیر به روز شده برای این آرایه ها را می توان در این فایل یافت . مطمئن شوید که ارائه دهندگان خدمات سفارشی و بسته خود را / نام مستعار به آرایه ها اضافه کنید.

app/config/remote.php فایل جدید را از مخزن اضافه کنید .

expire_on_close گزینه پیکربندی جدید را به app/config/session.php فایل خود اضافه کنید. مقدار پیش فرض باید باشد false .

failed بخش پیکربندی جدید را به app/config/queue.php فایل خود اضافه کنید. در اینجا مقادیر پیش فرض این بخش آمده است:

'failed' => array(
'database' => 'mysql', 'table' => 'failed_jobs',
),

(اختیاری) گزینه پیکربندی را در فایل pagination خود به روز کنید . app/config/view.php pagination::slider-3

به روز رسانی های کنترلر

اگر عبارتی در بالا app/controllers/BaseController.php دارد ، به تغییر دهید . use use Illuminate\Routing\Controllers\Controller; use Illuminate\Routing\Controller;

به روز رسانی یادآوری رمز عبور

یادآوری رمز عبور برای انعطاف پذیری بیشتر بازنگری شده است. با اجرای دستور Artisan می توانید کنترلر جدید خرد را بررسی کنید php artisan auth:reminders-controller . همچنین می توانید اسناد به روز شده را مرور کنید و برنامه خود را مطابق با آن به روز کنید.

app/lang/en/reminders.php فایل زبان خود را برای مطابقت با این فایل به روز شده به روز کنید .

به روز رسانی های تشخیص محیط

به دلایل امنیتی، دامنه های URL ممکن است دیگر برای شناسایی محیط برنامه شما استفاده نشوند. این مقادیر به راحتی قابل جعل هستند و به مهاجمان اجازه می دهند تا محیط یک درخواست را تغییر دهند. شما باید تشخیص محیط خود را به استفاده از نام میزبان ماشین ( hostname فرمان در مک، لینوکس و ویندوز) تبدیل کنید.

فایل های لاگ ساده تر

لاراول اکنون یک فایل لاگ واحد تولید می کند: app/storage/logs/laravel.log . با این حال، همچنان ممکن است این رفتار را در app/start/global.php فایل خود پیکربندی کنید.

حذف اسلش دنباله دار تغییر مسیر

در bootstrap/start.php فایل خود، تماس با را حذف کنید $app->redirectIfTrailingSlash() . این روش دیگر مورد نیاز نیست زیرا این عملکرد اکنون توسط .htaccess فایل همراه با فریمورک کنترل می شود.

در مرحله بعد، فایل آپاچی خود .htaccess را با این فایل جدید جایگزین کنید که اسلش های انتهایی را مدیریت می کند.

دسترسی به مسیر فعلی

اکنون مسیر فعلی Route::current() به جای Route::getCurrentRoute() .

به روز رسانی composer

پس از تکمیل تغییرات بالا، می توانید composer update عملکرد را برای به روز رسانی فایل های برنامه اصلی خود اجرا کنید! اگر خطاهای بارگذاری کلاس را دریافت کردید، update دستور را با --no-scripts گزینه فعال مانند زیر اجرا کنید: composer update --no-scripts .

شنوندگان رویداد Wildcard

شنوندگان رویدادهای wildcard دیگر رویداد را به پارامترهای توابع کنترل کننده شما اضافه نمی کنند. اگر نیاز به یافتن رویدادی دارید که اخراج شده است، باید از آن استفاده کنید Event::firing() .