Skip to content

JavaDle/LaravelUpdater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Updater [ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ для вашСго прилоТСния Laravel]

Updater позволяСт Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Laravel автоматичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ!

Когда Π²Ρ‹ выпускаСтС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ; поэтому ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ для исправлСния ошибок, Π° Ρ‚Π°ΠΊΠΆΠ΅ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π’Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

> Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ вСрсии с сСрвСра Π²Π°ΠΌ показываСтся ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ с доступным Π½ΠΎΠ²Ρ‹ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ для систСмы

> Π Π΅ΠΆΠΈΠΌ обслуТивания

Update Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ обслуТивания (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Laravel) с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° запуска обновлСния Π΄ΠΎ Π΅Π³ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ.

> Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ администратор) ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ для прилоТСния; этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ хранится Π² config/updater.php, поэтому ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ своих ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ нСзависимо. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Updater совмСстим с Laravel-Auth.

> ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²Ρ‹ΠΉ

Π’ΠΎ врСмя обновлСния Update Π‘ΠžΠ—Π”ΠΠ•Π’ РЕЗЕРВНЫЕ КОПИИ всСх пСрСзаписываСмых Ρ„Π°ΠΉΠ»ΠΎΠ², поэтому Π² случаС ошибки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ автоматичСски Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ состояниС. Если восстановлСниС Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию, Ρ…Ρ€Π°Π½ΡΡ‰ΡƒΡŽΡΡ Π² ΠΊΠΎΡ€Π½Π΅ вашСй систСмы, для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ обслуТивания.

> ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ скрипт PHP

Update ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрипт PHP для выполнСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… дСйствий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… послС обновлСния); ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° послСднСм шагС обновлСния.

> Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅/восстановлСниС

> ΠœΠ½ΠΎΠ³ΠΎΡΠ·Ρ‹Ρ‡Π½Ρ‹ΠΉ

> Доступ ΠΈΠ· Π²Π΅Π±-интСрфСйса ΠΈΠ»ΠΈ консоли

Начиная

Π­Ρ‚ΠΈ инструкции ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ копию ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° вашСм сСрвСрС для Ρ†Π΅Π»Π΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ тСстирования.

Prerequisites

Updater Π±Ρ‹Π» протСстирован с использованиСм Laravel 9/10 РСкомСндуСмая вСрсия Laravel >= 8

Installing

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Composer:

composer require javadle/updater

ПослС установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

1) Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² свой сСрвис ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ Π² config/app.php ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

'providers' => [
    // ...
    pcinaglia\updater\UpdaterServiceProvider::class,
];

2) ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π­Ρ‚ΠΎΡ‚ шаг скопируСт Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ вашСго прилоТСния 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

3) Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ version.txt

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ вашСго прилоТСния, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ version.txt ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ вашСго прилоТСния Laravel. НапримСр, создайтС Ρ„Π°ΠΉΠ» .txt, содСрТащий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ:

1.0

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 строку, ΠΏΠ΅Ρ€Π²ΡƒΡŽ, Π² Ρ„Π°ΠΉΠ»Π΅ .txt. ΠŸΡ€ΠΈ выпускС обновлСния эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· Updater.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ свой Β«Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉΒ» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ

1) Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ²

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ZIP-Π°Ρ€Ρ…ΠΈΠ² со всСми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΠΎ врСмя обновлСния (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Ρƒ ΠΆΠ΅ структуру вашСго прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π°Ρ€Ρ…ΠΈΠ²Π΅).

1.1) Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ обновлСния (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ)

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» 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 (Π½Π΅ рСкомСндуСтся).

2) УстановитС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ для вашСго обновлСния:

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ updater.json ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

{
  "version": "1.0.1",
  "archive": "RELEASE-1.01.zip",
  "description": "Added Blogs"
}

archive содСрТит имя Π°Ρ€Ρ…ΠΈΠ²Π° .zip (см. шаг 1).

3) Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ своС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ updater.json ΠΈ .zip-Π°Ρ€Ρ…ΠΈΠ² Π² Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΡƒ Π½Π° вашСм сСрвСрС (Ρ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅).

4) НастройтС своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ сСрвСр, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, Π² 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:

updater.check, updater:check

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ '' (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ сущСствуСт) Π˜Π›Π˜ $version (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1.0.1, Ссли ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ сущСствуСт).

updater.currentVersion, updater:current-version

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ вашСго прилоТСния (ΠΈΠ· version.txt).

updater.update, updater:update

Он Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΈ устанавливаСт послСднСС доступноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎΡ‚ Π²Π΅Π±-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· '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')

Π’Π•Π‘Π’: ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠΉΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ страницу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅.