PHP Framework: Mengaktifkan Autoloading Menggunakan Composer

Install Composer
Dari terminal jalankan perintah: php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
 * 1) Download installer

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
 * 1) Install Composer

php -r "unlink('composer-setup.php');"
 * 1) Hapus installer

composer
 * 1) Test installasi

Jika berhasil terpasang, akan muncul: ______ / ____/___  ____ ___  ____  ____  ________  _____ / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/                    /_/ Composer version 2.0.7 2020-11-13 17:31:06

Usage: command [options] [arguments]

Options: -h, --help                    Display this help message -q, --quiet                   Do not output any message -V, --version                 Display this application version --ansi                    Force ANSI output --no-ansi                 Disable ANSI output -n, --no-interaction          Do not ask any interactive question --profile                 Display timing and memory usage information --no-plugins              Whether to disable plugins. -d, --working-dir=WORKING-DIR If specified, use the given directory as working directory. --no-cache                Prevent use of the cache -v|vv|vvv, --verbose          Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands: about               Shows the short information about Composer. archive             Creates an archive of this composer package. browse              Opens the package's repository URL or homepage in your browser. cc                  Clears composer's internal package cache. check-platform-reqs Check that platform requirements are satisfied. clear-cache         Clears composer's internal package cache. clearcache          Clears composer's internal package cache. config              Sets config options. create-project      Creates new project from a package into given directory. depends             Shows which packages cause the given package to be installed. diagnose            Diagnoses the system to identify common errors. dump-autoload       Dumps the autoloader. dumpautoload        Dumps the autoloader. exec                Executes a vendored binary/script. fund                Discover how to help fund the maintenance of your dependencies. global              Allows running commands in the global composer dir ($COMPOSER_HOME). help                Displays help for a command home                Opens the package's repository URL or homepage in your browser. i                   Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json. info                Shows information about packages. init                Creates a basic composer.json file in current directory. install             Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json. licenses            Shows information about licenses of dependencies. list                Lists commands outdated            Shows a list of installed packages that have updates available, including their latest version. prohibits           Shows which packages prevent the given package from being installed. remove              Removes a package from the require or require-dev. require             Adds required packages to your composer.json and installs them. run                 Runs the scripts defined in composer.json. run-script          Runs the scripts defined in composer.json. search              Searches for packages. self-update         Updates composer.phar to the latest version. selfupdate          Updates composer.phar to the latest version. show                Shows information about packages. status              Shows a list of locally modified packages. suggests            Shows package suggestions. u                   Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file. update              Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file. upgrade             Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file. validate            Validates a composer.json and composer.lock. why                 Shows which packages cause the given package to be installed. why-not             Shows which packages prevent the given package from being installed.

Inisialisasi Composer
composer init

Menambah Autoloading

 * composer.json

Menambahkan Namespace
Karena setiap class yang ada di dalam direktori utama ada dalam namespace app, maka kita akan menambahkan namespace app\core untuk setiap class yang ada di dalam direktori core.


 * core/Application.php


 * core/Router.php

Update Composer
Untuk mengaktifkan autoloading, kita perlu meng-update composer. composer update

Setelah selesai, maka di dalam direktori vendor akan ada file autoload.php. vendor/ ├── autoload.php └── composer

Menyertakan Autoload
Pada index.php, tambahkan  untuk menyertakan autoload. Kemudian, tambahkan  untuk menggunakan class Application.


 * index.php