Upgrade FuelPHP from PHP5.6 to PHP7.1

Spread the love

Mình chỉ note lại một số lỗi mình gặp và hướng xử lý khi thực hiện update fuelphp từ php5.6 -> php 7.1

First error


ERROR - 2018-09-12 01:19:49 --> 8192 - Function mcrypt_list_algorithms() is deprecated in /Users/khanh/project/ss_nps/fuel/core/vendor/phpseclib/Crypt/Base.php on line 456

DEBUG - 2018-09-12 01:19:49 --> Notice - Error throttling threshold was reached, no more full error reports are shown. in /Users/khanh/project/ss_nps/fuel/core/classes/error.php on line 159

ERROR - 2018-09-12 01:19:49 --> Fatal Error - Uncaught TypeError: Argument 1 passed to {closure}() must be an instance of Exception, instance of Error given in /Users/khanh/project/ss_nps/fuel/core/bootstrap.php:80

Ok. Do core của mình đang là 1.7 (fuel/core) mình sẽ cập nhật lên 1.8 bằng cách

Download 1.8 tại đây

https://fuelphp.com/downloads

Sau khi download xong giải nén, copy các thư mục

  • fuel/core
  • fuel/packages

vào thư mục source

Second eror

Chạy lại thì vẫn lỗi


ERROR - 2018-09-12 01:51:34 --> Array

(

[message] => Error - Fuel requires Sodium support in PHP. Either use PHP 7.2+, install the libsodium PECL extension, of the sodium-compat composer package! in /Users/khanh/project/ss_nps/fuel/core/vendor/paragonie.php on line 33

[os] => MacOS

[browser] => Array

(

[name] => Google Chrome

[version] => 68.0.3440.106

)

[ua] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36

)

Google thì thấy bảo cài sodium-compat package

Ok -> cài thử


composer require paragonie/sodium_compat

Third error

Chạy lại thử trang


ERROR - 2018-09-12 02:14:21 --> Array

(

[message] => Error - Class 'phpseclib\Crypt\AES' not found in /Users/khanh/project/ss_nps/fuel/core/classes/crypt.php on line 438

[os] => MacOS

[browser] => Array

(

[name] => Google Chrome

[version] => 68.0.3440.106

)

[ua] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36

)

Ui chà vẫn lỗi. Google thì thấy có update cả composer.json


"require": {

"php": ">=5.3.3",

"composer/installers": "~1.0",

"fuel/core": "dev-1.8/develop",

"fuel/auth": "dev-1.8/develop",

"fuel/email": "dev-1.8/develop",

"fuel/oil": "dev-1.8/develop",

"fuel/orm": "dev-1.8/develop",

"fuel/parser": "dev-1.8/develop",

"fuelphp/upload": "2.0.6",

"monolog/monolog": "1.5.*",

"phpseclib/phpseclib": "2.0.0",

"michelf/php-markdown": "1.4.0"

},

Ok. ở tại thư mục gốc dự án, update file composer.json


"phpseclib/phpseclib": "2.0.0"

Cắm thêm đoạn này vào và chạy composer update là xong

TLDR;

Khi update fuelphp từ v1.7 lên 1.8, trải qua khá nhiều cung bậc cảm xúc. Nhưng cuối cùng composer vẫn là package manager tốt nhất : ))

Leave a Reply

Your email address will not be published. Required fields are marked *