Minggu, 30 September 2018

Membuat Helper Sendiri di Laravel About Laravel

Membuat Helper Sendiri di Laravel

laravel

Laravel telah menyediakan beragam helper php function yang bersifat global. Function ini banyak digunakan oleh framework itu sendiri. Namun, anda bebas menggunakannya dalam aplikasi anda jika anda merasa nyaman. Jadi, pada dasarnya, helpers yang disediakan oleh Laravel dapat anda gunakan darimanapun dalam aplikasi anda, jika helpers yang sesuai kebutuhan anda tidak tersedia, maka anda dibolehkan untuk membuat helper sendiri. 

Meskipun core Laravel telah menyediakan berbagai macam helper, selalu ada kemungkinan bagi anda untuk membuat helpers anda sendiri dan mengembangkannya sesuai dengan yang anda butuhkan, sehingga anda tidak perlu mengulang kode yang sama berulang kali di berbagai tempat. Hal ini akan menyebabkan proses maintenance menjadi lebih mudah untuk dilakukan. Melalui artikel ini, kita akan belajar membuat helpers sendiri.

Membuat Custom Helper

Seperti yang telah kita bahas sebelumnya bahwa Laravel telah menyediakan helpers yang dapat digunakan sesuai kebutuhan kita, helpers tersebut dibagi menjadi beberapa kategori, diantaranya: Arrays, Paths, Strings, URLs, Miscellaneous. Adapun helpers secara rinci dapat anda cek :

Maka terlepas dari helpers yang telah disediakan berdasarkan kegunaannya masing-masing, pada kesempatan kali ini kita akan mencoba untuk membuat custom helper yang dapat digunakan secara global pada aplikasi anda. 

Agar mudah dimengerti, maka kita akan membuat helper sederhana dimana kita akan mengambil userid dan mengembalikan username sebagai response. Tampaknya terlalu sederhana, akan tetapi cukup untuk memahami konsepnya sehingga anda dapat mengembangkannya lebih lanjut sesuai kebutuhan anda.
Saya berasumsi anda telah memiliki users table pada database anda dan setidaknya memiliki dua field: userid dan username.

Membuat file helpers

Sebenarnya anda dapat menempatkan file helper yang anda miliki dimanapun pada aplikasi anda. Pada artikel kali ini kita akan bersepakat untuk menempatkannya pada direktori app. Buat folder Helpers dan didalam folder Helpers, buat file User.php kemudian tambahkan potongan code dibawah ini:
<?php
namespace App\Helpers;
 
use Illuminate\Support\Facades\DB;
 
class User {
    public static function get_username($user_id) {
        $user = DB::table('users')->where('userid', $user_id)->first();
        return (isset($user->username) ? $user->username : '');
    }
}
Langkah selanjutnya adalah dengan membuat service provider, jalankan command berikut:
php artisan make:provider UserServiceProvider
Buka file app/Providers/UserServiceProvider.php maka anda akan mendapatkan dua buah method. Pada method register, tambahkan potongan code berikut:
public function register()
{
   require_once app_path() . '/Helpers/User.php';
}
Kita perlu menginformasikan bahwa kita memiliki service provider baru agar dapat digunakan, buka file config/app.php dan tambahkan potongan code berikut pada bagian providers:
App\Providers\UserServiceProvider::class,
Cara mudah menggunakan helper yang kita miliki adalah dengan menambahkan alias, jadi tambahkan code berikut pada bagian aliases:
'UserHelp' => App\Helpers\User::class,
Dengan menentukan entri ini, maka kita dapat menggunakan helper kita dengan keyword UserHelp. Adapun code lengkap dari config/app.php menjadi:
<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Application Name
    |--------------------------------------------------------------------------
    |
    | This value is the name of your application. This value is used when the
    | framework needs to place the application's name in a notification or
    | any other location as required by the application or its packages.
    */

    'name' => env('APP_NAME', 'Laravel'),

    /*
    |--------------------------------------------------------------------------
    | Application Environment
    |--------------------------------------------------------------------------
    |
    | This value determines the "environment" your application is currently
    | running in. This may determine how you prefer to configure various
    | services your application utilizes. Set this in your ".env" file.
    |
    */

    'env' => env('APP_ENV', 'production'),

    /*
    |--------------------------------------------------------------------------
    | Application Debug Mode
    |--------------------------------------------------------------------------
    |
    | When your application is in debug mode, detailed error messages with
    | stack traces will be shown on every error that occurs within your
    | application. If disabled, a simple generic error page is shown.
    |
    */

    'debug' => env('APP_DEBUG', false),

    /*
    |--------------------------------------------------------------------------
    | Application URL
    |--------------------------------------------------------------------------
    |
    | This URL is used by the console to properly generate URLs when using
    | the Artisan command line tool. You should set this to the root of
    | your application so that it is used when running Artisan tasks.
    |
    */

    'url' => env('APP_URL', 'http://localhost'),

    /*
    |--------------------------------------------------------------------------
    | Application Timezone
    |--------------------------------------------------------------------------
    |
    | Here you may specify the default timezone for your application, which
    | will be used by the PHP date and date-time functions. We have gone
    | ahead and set this to a sensible default for you out of the box.
    |
    */

    'timezone' => 'UTC',

    /*
    |--------------------------------------------------------------------------
    | Application Locale Configuration
    |--------------------------------------------------------------------------
    |
    | The application locale determines the default locale that will be used
    | by the translation service provider. You are free to set this value
    | to any of the locales which will be supported by the application.
    |
    */

    'locale' => 'en',

    /*
    |--------------------------------------------------------------------------
    | Application Fallback Locale
    |--------------------------------------------------------------------------
    |
    | The fallback locale determines the locale to use when the current one
    | is not available. You may change the value to correspond to any of
    | the language folders that are provided through your application.
    |
    */

    'fallback_locale' => 'en',

    /*
    |--------------------------------------------------------------------------
    | Encryption Key
    |--------------------------------------------------------------------------
    |
    | This key is used by the Illuminate encrypter service and should be set
    | to a random, 32 character string, otherwise these encrypted strings
    | will not be safe. Please do this before deploying an application!
    |
    */

    'key' => env('APP_KEY'),

    'cipher' => 'AES-256-CBC',

    /*
    |--------------------------------------------------------------------------
    | Logging Configuration
    |--------------------------------------------------------------------------
    |
    | Here you may configure the log settings for your application. Out of
    | the box, Laravel uses the Monolog PHP logging library. This gives
    | you a variety of powerful log handlers / formatters to utilize.
    |
    | Available Settings: "single", "daily", "syslog", "errorlog"
    |
    */

    'log' => env('APP_LOG', 'single'),

    'log_level' => env('APP_LOG_LEVEL', 'debug'),

    /*
    |--------------------------------------------------------------------------
    | Autoloaded Service Providers
    |--------------------------------------------------------------------------
    |
    | The service providers listed here will be automatically loaded on the
    | request to your application. Feel free to add your own services to
    | this array to grant expanded functionality to your applications.
    |
    */

    'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
        Illuminate\Bus\BusServiceProvider::class,
        Illuminate\Cache\CacheServiceProvider::class,
        Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
        Illuminate\Cookie\CookieServiceProvider::class,
        Illuminate\Database\DatabaseServiceProvider::class,
        Illuminate\Encryption\EncryptionServiceProvider::class,
        Illuminate\Filesystem\FilesystemServiceProvider::class,
        Illuminate\Foundation\Providers\FoundationServiceProvider::class,
        Illuminate\Hashing\HashServiceProvider::class,
        Illuminate\Mail\MailServiceProvider::class,
        Illuminate\Notifications\NotificationServiceProvider::class,
        Illuminate\Pagination\PaginationServiceProvider::class,
        Illuminate\Pipeline\PipelineServiceProvider::class,
        Illuminate\Queue\QueueServiceProvider::class,
        Illuminate\Redis\RedisServiceProvider::class,
        Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
        Illuminate\Session\SessionServiceProvider::class,
        Illuminate\Translation\TranslationServiceProvider::class,
        Illuminate\Validation\ValidationServiceProvider::class,
        Illuminate\View\ViewServiceProvider::class,
        App\Providers\UserServiceProvider::class,

        /*
         * Package Service Providers...
         */
        Laravel\Tinker\TinkerServiceProvider::class,

        /*
         * Application Service Providers...
         */
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        // App\Providers\BroadcastServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,

    ],

    /*
    |--------------------------------------------------------------------------
    | Class Aliases
    |--------------------------------------------------------------------------
    |
    | This array of class aliases will be registered when this application
    | is started. However, feel free to register as many as you wish as
    | the aliases are "lazy" loaded so they don't hinder performance.
    |
    */

    'aliases' => [

        'App' => Illuminate\Support\Facades\App::class,
        'Artisan' => Illuminate\Support\Facades\Artisan::class,
        'Auth' => Illuminate\Support\Facades\Auth::class,
        'Blade' => Illuminate\Support\Facades\Blade::class,
        'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
        'Bus' => Illuminate\Support\Facades\Bus::class,
        'Cache' => Illuminate\Support\Facades\Cache::class,
        'Config' => Illuminate\Support\Facades\Config::class,
        'Cookie' => Illuminate\Support\Facades\Cookie::class,
        'Crypt' => Illuminate\Support\Facades\Crypt::class,
        'DB' => Illuminate\Support\Facades\DB::class,
        'Eloquent' => Illuminate\Database\Eloquent\Model::class,
        'Event' => Illuminate\Support\Facades\Event::class,
        'File' => Illuminate\Support\Facades\File::class,
        'Gate' => Illuminate\Support\Facades\Gate::class,
        'Hash' => Illuminate\Support\Facades\Hash::class,
        'Lang' => Illuminate\Support\Facades\Lang::class,
        'Log' => Illuminate\Support\Facades\Log::class,
        'Mail' => Illuminate\Support\Facades\Mail::class,
        'Notification' => Illuminate\Support\Facades\Notification::class,
        'Password' => Illuminate\Support\Facades\Password::class,
        'Queue' => Illuminate\Support\Facades\Queue::class,
        'Redirect' => Illuminate\Support\Facades\Redirect::class,
        'Redis' => Illuminate\Support\Facades\Redis::class,
        'Request' => Illuminate\Support\Facades\Request::class,
        'Response' => Illuminate\Support\Facades\Response::class,
        'Route' => Illuminate\Support\Facades\Route::class,
        'Schema' => Illuminate\Support\Facades\Schema::class,
        'Session' => Illuminate\Support\Facades\Session::class,
        'Storage' => Illuminate\Support\Facades\Storage::class,
        'URL' => Illuminate\Support\Facades\URL::class,
        'Validator' => Illuminate\Support\Facades\Validator::class,
        'View' => Illuminate\Support\Facades\View::class,
        'UserHelp' => App\Helpers\User::class,

    ],

];

Menggunakan Custom Helper

Helper yang kita inginkan telah berhasil dibuat, langkah selanjutnya adalah kita mencoba menggunakan helper ini. Agar tampak mudah dan dapat dipahami maka kita akan menggunakan helper ini secara langsung menggunakan closure method. Buka file routes/web.php kemudian tambahkan potongan code berikut:
Route::get('/helper-user', function () {
    return UserHelp::get_username(1);
});
Maka ketika anda mengakses url /helper-user, anda akan mendapatkan username dengan userid = 1. Anda dapat menggunakan custom helper darimanapun anda inginkan, seperti: dari controller atau views.
Read More

Membuat Halaman Pagination dengan Laravel

Membuat Halaman Pagination dengan Laravel


laravel

Intro

             Ketika kita membuat aplikasi dan dihadapkan dengan ribuan bahkan jutaan record data yang harus ditampilkan maka kita perlu membaginya menjadi beberapa halaman. Pagination dapat menjadi solusi yang cukup baik untuk mengatasi hal tersebut. Mayoritas framework sudah menyediakan fitur ini tanpa mengharuskan kita untuk membuatnya dari awal. Namun dalam tutorial ini kita akan belajar tentang menggunakan pagination pada Framework Laravel.
         Seperti dikutip pada Laravel Documentation bahwa dengan laravel kita bisa membuat pagination dengan mudah. Laravel dapat dengan cepat menghasilkan rentang halaman dari halaman sekarang dan menghasilkan link ke halaman yang diinginkan.
            Disarankan sebelum mengikuti tutorial ini kita sudah bisa menginstall project Laravel, routing dan bisa menampilkan data dari database. Untuk itu kita bisa enroll course Mari Berselancar dengan Framework Laravel untuk mempelajari cara installasi dan menampilkan database sebelum mengikuti tutorial ini.

Apa itu Pagination?

Pagination merupakan proses membagi dokumen ke dalam halaman terpisah, baik halaman elektronik atau halaman yang dicetak (Wikipedia). Intinya sih pagination adalah sebuah proses menampilkan data, dimana data yang ditampilkan akan ditampilkan dengan membaginya menjadi beberapa bagian/halaman secara merata.

Cara Penggunaan

Pada framework Laravel kita dapat mengimplementasikan pagination dengan Eloquent maupun Query Builder. Method paginate bisa menentukan berapa jumlah data yang ingin kita tampilkan di setiap halaman dimana proses menampilkan data sudah ditangani oleh Laravel. Kita tau beres aja.

Pagination Eloquent

Pertama, kita panggil method paginate pada sebuah model. Pada method paginate kita diminta untuk menambahkan parameter yang menunjukan jumlah data yang ingin kita tampilkan per halamannya. Dalam kasus ini kita akan menampilkan 15 data atau konten per halaman.

<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    /**
     * Show all of the users for the application.
     *
     * @return Response
     */
    public function index()
    {
        $users = User::paginate(15);

        return view('user.index', ['users' => $users]);
    }
}
 
Dengan method paginate memungkinkan kita untuk menggunakan constraints pada query seperti where:
$users = User::where('votes', '>', 100)->paginate(15);
 
"Simple Pagination"
Selain paginate, kita juga bisa menggunakan method simplePaginate yang hanya akan menampilkan Next dan Previous pada link pada halaman tampilan.
$users = User::simplePaginate(15);

Pagination Query Builder

Kita juga dapat mengimplementasikan method pagination pada Query Builder. Pada contoh di bawah ini kita akan membuat halaman tabel user dengan 15 data/record per halaman. Seperti di atas, kode program yang dituliskan mirip dengan implementasi pagination dengan Eloquent Model.

<?php

namespace App\Http\Controllers;

use DB;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    /**
     * Show all of the users for the application.
     *
     * @return Response
     */
    public function index()
    {
        $users = DB::table('users')->paginate(15);

        return view('user.index', ['users' => $users]);
    }
}
 
Kita juga bisa menggunakan method simplePaginate ketika membuat halaman dengan Query Builder.
$users = DB::table('users')->simplePaginate(15);
Saat ini, operasi pagination yang menggunakan method GroupBy tidak bisa dijalankan secara efisien oleh Laravel. Jika Kamu ingin menggunakan GroupBy dengan set hasil paginasi, direkomendasikan untuk menggunakan query database dan membuat paginator secara manual.

Menampilkan Hasil Pagination pada View

Di sini kita akan memanggil method paginate atau simplePaginate.
views/user/index.blade.php
<div class="container">
    @foreach ($users as $user)
        {{ $user->name }}
    @endforeach
</div>

{!! $users->render() !!}
Read More

Cara Membuat Halaman Web Pertama Menggunakan Laravel 5

Cara Membuat Halaman Web Pertama Menggunakan Laravel 5 next

 




Laravel dibangun oleh Taylor Otwell pada tanggal 22 Pebruari 2012 lalu. Frameworkini merupakan framework PHP open source dengan desain MVC (Model-View-Controller) yang digunakan untuk membangun sebuah aplikasi situs web.
Di artikel ini saya akan menjelaskan sedikit tentang Laravel, dari mulai cara menginstal Laravel sampai membuat halaman pertama menggunakan framework ini. Alasan mengapa saya menulis artikel tentang Laravel, selain lagi ramai dikalangan developer web, Laravel juga merupakan framework PHP yang membuat kodingan menjadi lebih singkat, mudah dimengerti, dan ekspressif sehingga hanya dengan membaca sekilas dari kode yang ditulis kita sudah bisa menduga apa maksudnya tanpa perlu melihat dokumentasi.
Sebelum mulai menginstal framework Laravel, pastikan di komputer anda sudah terinstal aplikasi semacam WampServer atau SecureWamp. Pada komputer saya untuk artikel ini menggunakan sistem operasi Windows 10 dan aplikasi XAMPP.
Ada beberapa cara sebetulnya untuk menginstal Laravel, namun pada tulisan ini kita akan menginstal Laravel menggunakan metode Composer yaitu dengan menggunakan perintah composer create-project. Metode ini sangat direkomendasikan karena Composer akan mengurus segala ketergantungan Laravel dengan library lainnya. Dengan kata lain, kita tidak perlu mengunduh satu persatu library yang dibutuhkan.

Instal Composer

Bagi pengguna Windows bisa langsung mengunduh Composer Installer. Buka aplikasi yang sudah diunduh kemudian lakukan proses instalasi sampai selesai. Pada proses instalasi Composer akan muncul tampilan yang meminta letak dimana lokasi PHP diinstal, karena pada tulisan ini menggunakan aplikasi XAMPP maka lokasi PHP ada pada C:/xampp/php/php.exe. Jika anda tidak menggunakan XAMPP, silahkan cari lokasi PHP yang ada pada komputer anda.

Instal Laravel

Setelah selesai menginstal Composer, selanjutnya kita akan menginstal Laravel dengan menggunakan perintah composer create-project pada Command Prompt (CMD) yang terdapat pada sistem operasi Windows. Karena pada tulisan ini menggunakan XAMPP, maka kita akan menginstal Laravel pada folder C:/xampp/htdocs/ .
Silahkan buka CMD dan arahkan lokasi instalasi pada folder htdocs. Ikuti perintah seperti di bawah ini untuk menginstal Laravel dan membuat proyek baru.
composer create-project laravel/laravel project-name –prefer-dist
project-name merupakan nama dari sebuah proyek yang kita buat, silahkan isi nama sesuai dengan keinginan. Pada kasus ini saya beri nama proyek belajarlaravel. Setelah itu kita hanya perlu menunggu Laravel terpasang pada komputer kita dengan nama proyek yang sudah dibuat. Harus diingat, proses ini membutuhkan koneksi internet.
tutorial-laravel1
Setelah proses pemasangan Laravel selesai, silahkan ketik URL localhost/belajarlaravel/public untuk melihat hasilnya. Sebelumnya, terlebih dahulu anda harus membuka aplikasi XAMPP dan mengaktifkan web server Apache. Di bawah ini tampilan pertama ketika kita berhasil menginstal Laravel.
tampilan-laravel-1

Menampilkan Halaman “Hello, Agan!”

Setelah berhasil menginstal atau membuat proyek Laravel, sekarang kita akan mencoba membuat halaman web menggunakan Laravel. Pada bahasa pemrograman apapun ketika belajar pertama kali kita akan belajar menampilkan kalimat “Hello, World”.
Pada tulisan ini, agar sedikit berbeda dan agar tidak mainstream maka kita akan menggunakan kalimat “Hello, Agan!”. Halaman yang akan dibuat akan tampak seperti gambar dibawah ini.
tutorial-laravel-2

Untuk membuat halaman seperti diatas, silahkan buka proyek belajrlaravel menggunakan editor teks seperti Sublime, Notepad++, dan lain-lain. Laravel mempunyai konsep MVC (Model-View-Controller). Untuk membuat tampilan kita akan buat pada view, untuk mengenai data kita akan simpan pada model, dan untuk logika nya kita akan simpan pada controller.
Pertama kita akan membuat tampilan, silahkan buat file dengan nama hello.blade.php dan ketik koding seperti dibawah ini.
Kemudian simpan pada belajarlaravel/resources/views/hello.blade.php. Jika anda belum mengetahui, blade merupakan template engine bawaan Laravel. Blade menawarkan sintaks yang lebih mudah dan singkat untuk dipakai dalam menghasilkan dokumen HTML.
Setelah itu, buatlah controller baru dengan nama Hello. Ketik kodingan di bawah ini untuk membuat fungsi baru dengan nama show pada controller Hello.
Setelah selesai tahap diatas, silahkan buka file routes.php yang terdapat pada proyek belajarlaravel/app/Http/routes.php kemudian tambahkan koding di bawah ini.
Untuk melihat hasilnya silahkan ketik URL localhost/belajarlaravel/public/hello/{name} pada peramban web. Jika anda ingin menampilkan nama anda, silahkan isi variabel {name} dengan nama anda.
Read More
Diberdayakan oleh Blogger.

Like on Facebook

Breaking News

animasi blog
style="position:absolute;

Menu - Pages

Beauty

Text Widget

Formulir Kontak

Nama

Email *

Pesan *

animasi blog

Pages

About

Travel

Blogger templates

Most Trending

Popular Posts