راهنمای ارتقا
ارتقا به 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()
.