From f6b2a3049b2fa8583ce93b9835f1b431122f9168 Mon Sep 17 00:00:00 2001 From: Zzzul Date: Fri, 21 Jun 2024 15:03:39 +0700 Subject: [PATCH] update upgrade guide --- docs/id/upgrade-guide.md | 445 +++++++++++++++++++++++++-------------- docs/id/usage.md | 2 +- docs/upgrade-guide.md | 38 ++-- 3 files changed, 312 insertions(+), 173 deletions(-) diff --git a/docs/id/upgrade-guide.md b/docs/id/upgrade-guide.md index cbd1c9f..283ffec 100644 --- a/docs/id/upgrade-guide.md +++ b/docs/id/upgrade-guide.md @@ -1,195 +1,337 @@ -# Apa Aja sih, yang Baru? - +# Apa aja sih yang baru? Setiap perubahan itu pasti ada dan wajar, jadi Kami harap Kamu dapat menerima perubahan ini yaa. -## Perubahan dengan Versi Terbaru +## Perubahan dengan versi terbau + 1. Minimal [Laravel 11.x](https://laravel.com/docs/11.x/upgrade) - Karena [Laravel 11.x](https://laravel.com/docs/11.x/upgrade) memiliki perbedaan yang sangat signifikan dengan versi sebelumya, maka Kami memutuskan untuk tidak melanjutkan dukungan ke [Laravel 10.x](#), dan minimal Laravel yang didukung adalah [Laravel 11.x](https://laravel.com/docs/11.x/upgrade) - -2. Memperbarui beberapa pustaka yang diperlukan, antara lain: - - [Intervention Image v3.x](#) - - [Yajra Datatable v11.x](#) - - [Spatie Permission v6.x](#) - - dan untuk pustaka yang diguanakan dalam proses pengembangan, yaitu: - - [Larastan v2.x](#) - - [PHPinsights v2.x](#) - - [Testbench v9.x](#) - -Untuk melihat _Changelog_ yang terbaru dan lebih lengkap, silahkan kunjungi [Github Releases](https://github.com/evdigiina/generator/releases) - -3. Menghapus `App\Generators\GeneratorUtils` kelas dan memperbarui _helper_ kelas, [here for more info](#cara-memperbarui). - -4. Memperbaiki _bug_ dan _error_ - -## Cara Memperbarui - -1. Jika Kamu masih menggunakan [Laravel v10.x](https://laravel.com/docs/10.x), silahkan memperbarui Laravel Kamu ke versi [11.x](#) -2. Menjalankan perintah berikut: - - ```sh - composer update evdigiina/generator:0.3.0 --dev - ``` - -3. Publikasikan beberapa berkas terbaru - - ```sh - php artisan generator:publish-utils - ``` -4. Tambahkan beberapa baris kode berikut pada `resources/views/layouts/sidebar.blade.php` - ```blade - {{-- Kode baru --}} - @auth - - @endauth - - @foreach (config('generator.sidebars') as $sidebar) - {{-- Kode menu sidebar kamu --}} - @enforeach - - {{-- Kode baru --}} - @if (env('APP_ENV') === 'local') - - - - - - - - @endif - - {{-- Kode baru --}} - @auth - - - - - - @endauth - - ``` -6. Menghapus kelas `App\Generators\GeneratorUtils` dan juga memperbarui kelas _helper_ - - Berikut adalah kelas _helper_ terbaru, kami sarankan Kamu untuk mengubah kode pada fugsi `is_active_menu` + Karena [Laravel 11.x](https://laravel.com) berbeda secara signifikan dari versi sebelumnya, kami memutuskan untuk menghentikan dukungan untuk [Laravel 10](https://laravel.com/docs/10.x). Versi terendah yang didukung saat ini adalah [Laravel 11](https://laravel.com/docs/11.x/upgrade) -```php -/** - * Check the sidebar menu with the current uri - */ -if (!function_exists('is_active_menu')) { - function is_active_menu(string|array $route): string - { - $activeClass = ' active'; +2. Memperbarui beberapa pustaka yang dibutuhkan: - if (is_string($route)) { - if (request()->is(substr($route . '*', 1))) return $activeClass; + - [Intervention Image v3.x](https://image.intervention.io/v3) + - [Yajra Datatable v11.x](https://yajrabox.com/docs/laravel-datatables/11.0) + - [Spatie Permission v6.x](https://spatie.be/docs/laravel-permission/v6/introduction) - if (request()->is(str($route)->slug() . '*')) return $activeClass; + An Dan yang dibutuhkan untuk proses pengembangan: - if (request()->segment(2) == str($route)->before('/')) return $activeClass; + - [Larastan v2.x](https://github.com/larastan/larastan) + - [PHPinsights v2.x](https://phpinsights.com/) + - [Testbench v9.x](https://packages.tools/testbench.html) - if (request()->segment(3) == str($route)->after('/')) return $activeClass; - } +3. Menghapus `App\Generators\GeneratorUtils` kelas dan melakukan perubahan pada _helper_ kelas, [Disini untuk lebih lanjut](#how-to-update) - if (is_array($route)) { - foreach ($route as $value) { - $actualRoute = str($value)->remove(' view')->plural(); +4. Memperbaiki _Bug_ dan _Error_ - if (request()->is(substr($actualRoute . '*', 1))) return $activeClass; +Untuk daftar perubahan terbaru dan lebih lengkap, silakan kunjungi [GitHub Rilis](https://github.com/evdigiina/generator/releases) - if (request()->is(str($actualRoute)->slug() . '*')) return $activeClass; +## Cara memperbarui - if (request()->segment(2) == $actualRoute) return $activeClass; +1. Jika Kamu masih menggunakan [Laravel 10.x](https://laravel.com/docs/10.x), harap pertimbangkan untuk membaca [Panduan peningkatan Laravel 11.x](https://laravel.com/docs/11.x/updgrade) - if (request()->segment(3) == $actualRoute) return $activeClass; - } - } +2. Ubah pustaka berikut pada `composer.json` - return ''; - } -} -``` + ```json + "laravel/framework to": "^11.0", + + // require-dev + "nunomaduro/collision": "^8.1", + "evdigiina/generator": "^0.3.0", + ``` + + Optional (if installed). + + ```json + "spatie/laravel-permission": "^6.0", + "laravel/fortify": "^1.21" + ``` + + Lalu jalankan perintah berikut + + ```sh + composer update + ``` + +3. Publikasikan berkas terbaru + + ```sh + php artisan generator:publish-utils + ``` + +4. Tambahkan kode berikut pada `resources/views/layouts/sidebar.blade.php` + + ```blade + + + ``` + +5. Ubah kode pada `resources/views/layouts/header.blade.php` menjadi seperti dibawah ini + + ```blade + + ``` + +6. Bukan cara yang bagus untuk mengubah folder `vendor`, tapi untuk sekarang tolong abaikan saja. Buat file `generator.cache` di `vendor/evdigiina/generator` lalu _copy_ kode di bawah ini + + ```json + { "simple_version_publish_count": 0, "full_version_publish_count": 1 } + ``` + +:::info +Ubah `simple_version_publish_count` atau `full_version_publish_count` menjadi `1` sesuaikan dengan versi yang Kamu gunakan +::: + +7. Ubah `config/generator.php` dari `image.path` menjadi `image.disk` + + ```php + 'image' => [ + /** + * Path for store the image. + * + * available options: + * 1. public + * 2. storage + */ + 'path' => 'storage', + // ... another configuration + ] + ``` + + ```php + "image" => [ + /** + * Image storage location + * + * Available options: + * 1. public + * 2. storage + * 3. S3 + */ + "disk" => "storage", + // ... another configuration + ] + ``` + + Untuk informasi tambahan tentang perubahan ini, [buka di sini](#fitur-terbaru) + +8. Jika Kamu mendapation masalah berikut setelah membuat modul baru, silakan baca dokumentasi mengenai _Middleware_ Laravel 11 baru di _Controller_ [di sini](https://laravel.com/docs/11.x/controllers#controller-middleware) + + ![Error middleware](/error-middleware.png) + + Jika Kamu tidak memerlukan _Middleware_, cukup hapus komentar pada kode tersebut atau gunakan gaya _Middleware_ Laravel 10 di bawah ini. + + ```php + // Koment kode dibawah ini + public static function middleware(): array + { + return [ + 'auth', + + // TODO: uncomment this code if you are using spatie permission + // new Middleware('permission:permission_name view', only: ['index', 'show']), + // new Middleware('permission:permission_name create', only: ['create', 'store']), + // new Middleware('permission:permission_name edit', only: ['edit', 'update']), + // new Middleware('permission:permission_name delete', only: ['destroy']), + ]; + } + ``` + + Dan ubah seperti gaya _Middleware_ Laravel 10 + + ```php + public function __construct() + { + $this->middleware('permission:permission_name view')->only('index', 'show'); + $this->middleware('permission:permission_name create')->only('create', 'store'); + $this->middleware('permission:permission_name edit')->only('edit', 'update'); + $this->middleware('permission:permission_name delete')->only('destroy'); + } + ``` + + Dari + + ```php + use Illuminate\Routing\Controllers\{HasMiddleware, Middleware}; + + class YourController extends Controller implements HasMiddleware + { + //... + } + ``` + + Diubah menjadi + + ```php + // use Illuminate\Routing\Controllers\{HasMiddleware, Middleware}; + + class YourController extends Controller + { + //... + } + ``` + + Jangan lupa hapus atau berikan komentar pada kode `use Illuminate\Routing\Controllers\{HasMiddleware, Middleware};` ## Fitur Terbaru :fire: -Fitur-fitur baru yang ditambahkan pada _Generator v0.3.x_ -1. (beta) _Generator_ dapat membuat _Seeder_ dan _Factory_ +Fitur terbaru yang ditambahkan pada versi _Generator ^0.3.x_: + +1. (beta) Generator dapat membuat kelas _Seeder_ dan _Factory_ -2. (beta) _CRUD API Generator_ :fire: +2. (beta) _CRUD API Generator_ :rocket: - Sekarang Kamu dapat membuat API dengan cepat dan mudah dengan menggunakan _CRUD API Generator_. + Sekarang Kamu dapat membuat API yang cepat dan mudah menggunakan _CRUD API Generator_ 3. _Single Form_ - Melakukan operasi _CRU_D dalam 1 halaman dan 1 form, fitur ini cocok bagi Kamu yang ingin membuat halaman seperti _Setting_, web profil, dan fitur lain yang hanya memiliki 1 data saja. + Buat CRUD dalam satu halaman dan _Form_. Fitur ini ideal untuk membuat halaman seperti pengaturan, profil web, dan fitur lainnya yang hanya memiliki 1 data saja. -4. Menambahkan kelas utilitas terbaru [ImageService](features.md#imageservice) kelas. +4. Menambahkan kelas terbaru [ImageService](features.md#imageservice) - Kelas ini digunakan untuk melakukan fungsi unggah dan manipulasi gambar menggunakan [Intervention Image](#) + Kelas ini digunakan untuk melakukan unggah gambar dan manipulasi gambar menggunakan [Intervention Image](https://image.intervention.io/v3) + +5. Menambahkan opsi baru ke konfigurasi `generator.image.disk`, yang sebelumnya adalah `generator.image.path`, kini Kamu dapat menggunakan opsi `public, storage, atau s3`. Berikut ini contohnya -5. Memambahkan opsi baru pada konfigurasi `generator.image.disk` sebelumnya `generator.image.path`, sekarang Kamu bisa menggunakan opsi `public`, `storage` atau `s3`. -berikut contohnya: ```php "image" => [ /** - * Lokasi penyimpanan gambar + * Tempat penyimpanan gambar * * Opsi tersedia: * 1. public * 2. storage * 3. S3 * - * ganti path menjadi disk + * Ubah 'path' to 'disk' */ "disk" => "storage", - - // kode konfigurasi lainnya. + + // konfigurasi lainnya ] ``` -Untuk menggunakan opsi `s3` kamu harus membaca dokumentasi terkait [disni](https://laravel.com/docs/11.x/filesystem#amazon-s3-compatible-filesystems). -Dan jika Kamu menggunakan opsi `storage` untuk menyimpan gambar, pastikan Kamu menjalankan +Untuk menggunakan opsi `s3`, Kamu harus membaca dokumentasi terkait [di sini](https://laravel.com/docs/11.x/filesystem#amazon-s3-kompatibel-filesystems) + +Dan jika Kamu menggunakan opsi `storage`, pastikan Kamu menjalankan perintah berikut + ```sh php artisan storage:link ``` -Jika kamu ingin melihat konfigurasi terbaru ada dibawah berikut: +Jika ingin melihat konfigurasi terbarunya ada di bawah ini yaa: + ```php return [ /** @@ -348,9 +490,6 @@ return [ ``` -6. Web dokumentasi terbaru :book: - - Karena Kami merasa kesulitan untuk membuat beberapa dokumentasi dalam beberapa versi (_versioning_) dan multi bahasa menggunakan [MkDocs](https://www.mkdocs.org/), oleh karena itu Kami memutuskan untuk membuat dokumentasi terbaru menggunakan [Vitepress](https://vitepress.dev/). - - +6. Dokumentasi terbaru :book: + We found it challenging to generate documentation for many versions and languages using [MkDocs](https://www.mkdocs.org/), so we chose to build the new documentation using [Vitepress](https://vitepress.dev/). diff --git a/docs/id/usage.md b/docs/id/usage.md index 220337a..aa5efd0 100644 --- a/docs/id/usage.md +++ b/docs/id/usage.md @@ -4,7 +4,7 @@ outline: deep # Cara Pakai yang Semoga Benar -### Buat _CRUD_ untuk pertama kali +### Buat _CRUD_ untuk pertama kalinya Akses pada _browser_ Kamu `/generators/create` jika Kamu menggunkan [versi lengkap](features.md#versi-lengkap) `/simple-generators/create` untuk [versi sederhana](features.md#versi-sederhana) diff --git a/docs/upgrade-guide.md b/docs/upgrade-guide.md index 4d94fe6..ff93773 100644 --- a/docs/upgrade-guide.md +++ b/docs/upgrade-guide.md @@ -6,14 +6,14 @@ Because [Laravel 11.x](#) differs significantly from earlier versions, we decided to terminate support for [Laravel 10](https://laravel.com/docs/10.x). The lowest supported version is currently [Laravel 11](https://laravel.com/docs/11.x/upgrade) 2. Updated numerous necessary libraries, including: - - [Intervention Image v3.x](#) - - [Yajra Datatable v11.x](#) - - [Spatie Permission v6.x](#) + - [Intervention Image v3.x](https://image.intervention.io/v3) + - [Yajra Datatable v11.x](https://yajrabox.com/docs/laravel-datatables/11.0) + - [Spatie Permission v6.x](https://spatie.be/docs/laravel-permission/v6/introduction) And for development process libraries: - - [Larastan v2.x](#) - - [PHPinsights v2.x](#) - - [Testbench v9.x](#) + - [Larastan v2.x](https://github.com/larastan/larastan) + - [PHPinsights v2.x](https://phpinsights.com/) + - [Testbench v9.x](https://packages.tools/testbench.html) 3. Remove `App\Generators\GeneratorUtils` class and update the helper class, [here for more info](#how-to-update) @@ -23,7 +23,7 @@ For the most recent and complete changelog, please visit [Github Releases](https ## How to Update -1. If you are still using [Laravel version 10.x](https://laravel.com/docs/10.x), please consider to read [Laravel 11.x upgrade guide](https://laravel.com/docs/11.x/upgrade) +1. If you are still using [Laravel 10.x](https://laravel.com/docs/10.x), please consider reading the [Laravel 11.x upgrade guide](https://laravel.com/docs/11.x/upgrade) 2. Update `composer.json` file @@ -35,20 +35,20 @@ For the most recent and complete changelog, please visit [Github Releases](https "nunomaduro/collision": "^8.1", "evdigiina/generator": "^0.3.0", ``` - Optionally (if installed) + Optional (if installed). ```json "spatie/laravel-permission": "^6.0", "laravel/fortify": "^1.21" ``` -3. Publish the latest files +3. Publish new files ```sh php artisan generator:publish-utils ``` -4. Add the following lines of code to `resources/views/layouts/sidebar.blade.php` +4. Add the following code to `resources/views/layouts/sidebar.blade.php` ```blade