Updater [ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Laravel]
Updater ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Laravel Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ!
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ; ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅ΡΠ΅ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ:
ΠΡΠΈ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π²Π°ΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π½ΠΎΠ²ΡΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ
Update Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Laravel) Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎ Π΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ) ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ; ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² config/updater.php
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΈΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Updater ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Laravel-Auth.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Update Π‘ΠΠΠΠΠΠ’ Π ΠΠΠΠ ΠΠΠ«Π ΠΠΠΠΠ Π²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΡΠ»ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ, Ρ ΡΠ°Π½ΡΡΡΡΡΡ Π² ΠΊΠΎΡΠ½Π΅ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π΄Π»Ρ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ.
Update ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ PHP Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ); ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ°Π³Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
> ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅/Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
ΠΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΏΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Updater Π±ΡΠ» ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Laravel 9/10 Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠ°Ρ Π²Π΅ΡΡΠΈΡ Laravel >= 8
ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Composer:
composer require javadle/updater
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
1) ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΡΠ²ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ Π² config/app.php
ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
'providers' => [
// ...
pcinaglia\updater\UpdaterServiceProvider::class,
];
ΠΡΠΎΡ ΡΠ°Π³ ΡΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π² ΠΏΠ°ΠΏΠΊΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Laravel.
php artisan vendor:publish --provider="javadle\updater\UpdaterServiceProvider"
ΠΠΎΠ³Π΄Π° ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ Updater ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΠ» Π² config/updater.php
, ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ:
/*
* ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠ°ΠΏΠΊΠ° Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡ
ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ.
*/
'tmp_folder_name' => 'tmp',
/*
* ΠΠΌΡ ΡΠ°ΠΉΠ»Π° ΡΠΊΡΠΈΠΏΡΠ°, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ.
*/
'script_filename' => 'upgrade.php',
/*
* URL-Π°Π΄ΡΠ΅Ρ, Π³Π΄Π΅ Ρ
ΡΠ°Π½ΡΡΡΡ Π²Π°ΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΠ°ΠΏΠΊΠΈ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΒ» ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ https://site.com/yourapp).
*/
'update_baseurl' => 'http://localhost:8888/update',
/*
* Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΠ Π΄Π»Ρ ΠΌΠ°ΡΡΡΡΡΠ°: updater.update
* ΠΠ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 'auth' (ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ 'allow_users_id')
*/
'middleware' => ['web', 'auth'],
/*
* Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅;
* ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ: ARRAY(user_id) ΠΈΠ»ΠΈ FALSE => Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: [1] OR [1,3,0] OR false
* ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Ρ ADMIN user_id=1; ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ FALSE, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ (Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ)
*/
'allow_users_id' => [1],
/*
* Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π±ΡΠ΄ΡΡ Π²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ;
* ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ: ARRAY()
* ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ADMIN ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΡΡΡ admin@admin.com;
*/
'show_change_log_for_users' => [
'admin@admin.az',
'admin@admin.ru',
'admin@admin.com'
],
/*
* Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅, Π±ΡΠ΄Π΅Ρ Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ jquery Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ
* ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π° jquery ΡΠΎ ΠΎΡΡΠ°Π²ΡΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ false
*/
'enable_jquery' => false,
/*
* Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅, Π±ΡΠ΄Π΅Ρ Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ sweetalert2 Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ
* ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π° sweetalert2 ΡΠΎ ΠΎΡΡΠ°Π²ΡΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ false
*/
'enable_sweet_alert2' => false
Π§ΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ version.txt
ΠΈ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠ°ΠΏΠΊΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Laravel.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» .txt, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ:
1.0
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ 1 ΡΡΡΠΎΠΊΡ, ΠΏΠ΅ΡΠ²ΡΡ, Π² ΡΠ°ΠΉΠ»Π΅ .txt. ΠΡΠΈ Π²ΡΠΏΡΡΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΠΈΠ· Updater.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ZIP-Π°ΡΡ ΠΈΠ² ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡ ΠΆΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ ΡΠ°ΠΉΠ»Ρ Π² Π°ΡΡ ΠΈΠ²Π΅).
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» PHP Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ upgrade.php
Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
).
ΠΡΠΎΡ ΡΠ°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ beforeUpdate()
ΠΈ afterUpdate()
Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ (ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠ°ΡΡΡ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Updater), ΡΠΌ. ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
<?php
function beforeUpdate(): bool
{
Artisan::call('backup::db');
return true;
}
function afterUpdate(): bool
{
Artisan::call('migrate --force');
Artisan::call('db::seed');
Artisan::call('module::seed');
return true;
}
?>
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ°ΡΡΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true (Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ).
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ updater.json ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
{
"version": "1.0.1",
"archive": "RELEASE-1.01.zip",
"description": "Added Blogs"
}
archive
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠΌΡ Π°ΡΡ
ΠΈΠ²Π° .zip (ΡΠΌ. ΡΠ°Π³ 1).
ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ updater.json
ΠΈ .zip-Π°ΡΡ
ΠΈΠ² Π² ΡΡ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΡ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ (ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅).
Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, Π² config/updater.php
(ΡΠΌ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°):
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π²:
http://yoursites.com/updatesformyapp/RELEASE-1.02.zip
ΠΈ http://yoursites.com/updatesformyapp/updater.json.
ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ 'update_baseurl'
ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: 'update_baseurl' => 'http://yoursites.com/updatesformyapp',
Updater ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²Π΅Π±-ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ artisan:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ '' (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ) ΠΠΠ $version (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 1.0.1, Π΅ΡΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ).
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΈΠ· version.txt
).
ΠΠ½ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅.
ΠΡΠΎΡ Π²Π΅Π±-ΠΌΠ°ΡΡΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· 'allow_users_id'
Π² config/updater.php
Π― ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΌΠ°ΡΡΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΠ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅; ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΡΠΌ. ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅:
ΠΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Bootstrap 5 ΠΈ JQuery (Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅)
(readme files/preview 1.png Β«ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΒ»)
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² resources/view/layout/app.blade.php
ΡΡΠΎΡ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π² Updater (Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅Π΄ @yield('content')
):
@include('vendor.updater.notification')
Π’ΠΠ‘Π’: ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅.