php, oop, namespace, autoload,

Menggunakan autoload untuk meregenerate class di PHP7

Puji Ermanto Puji Ermanto Follow Jun 30, 2019 · 3 mins read
Menggunakan autoload untuk meregenerate class di PHP7
Share this

بسم الله الرحمن الرحيم

php_namespace

Mengenal fitur Autoload PHP

Halo gaess apa kabarnya kalian semua ? Semoga baik-baik selalu yah gaes.
Di artikel kali ini saya akan melanjutkan, artikel sebelumnya yaitu mengenai namespace di PHP7.
dari artikel sebelumnya itu kita sudah mempunyai kerangka program sederhana menggunakan OOP konsep dan menggunakan fitur namespace, ya diartikel ini saya akan melanjutkan code script yang sama dengan menambahkan sebuah fitur magic dari laravel untuk mempersingkat proses pengembangan aplikasi atau program yang kita bangun menggunakan konsep OOP PHP.

diartikel sebelumnya kurang lebih susunan direktori untuk aplikasi sederhana saya masih seperti ini belum ada penambahan yah :

--------------------------------
 namespace/					
--------------------------------	
	app/					 	
		BaseClass/			 	
			BaseClass.php    	
		Add/				 	
			Add.php          	
		Substract/			 	
			Substract.php    	
		Multiply/			 	
			Multiply.php     	
		Devide/				 	
			Devide.php       
		Modulus/			 	
			Modulus.php      
		GanjilGenap/		 	
			GanjilGenap.php  	

		init.php             
---------------------------------

index.php

dari susunan direktori tersebut terdapat sebuah file yang difungsikan sebagai tunnel atau jalur yang akan menghubungkan kita dengan tiap-tiap class yang berada di direktori aplikasi kita yaitu direktori app/ :

berikut isi file app/init.php :

<?php 
/*
file : app/init.php
pujiermanto(codesyariah - 2019)
*/

require_once 'BaseClass/BaseClass.php';
require_once 'Add/Add.php';
require_once 'Substract/Substract.php';
require_once 'Multiply/Multiply.php';
require_once 'Divide/Divide.php';
require_once 'Modulus/Modulus.php';
require_once 'GanjilGenap/GanjilGenap.php';

use \app\BaseClass\BaseClass;
use \app\Add\Add;
use \app\Substract\Substract;
use \app\Multiply\Multiply;
use \app\Divide\Divide;
use \app\Modulus\Modulus;
use \app\GanjilGenap\GanjilGenap;

$base = new BaseClass;

$add = new Add;

$sub = new Substract;

$mult = new Multiply;

$div = new Divide;

$mod = new Modulus;

$x = new GanjilGenap;

Terdapat fungsi require_once yang berulang-ulang kali di lakukan di file init.php tersebut, sangat menyita waktu kan jika kita mempunya class yang lebih banyak lagi, maka dari itu kita gunakan salah satu magic tools php yang sangat keren fungsinya yaitu autoload spl_autoload_register().

Membuat autoload

Itulah kegunaan dari autoload di PHP ini, keren kan PHP, hehehe.
Ok langsung ajah, kita kembali lagi ke codeeditor kesayangan kita, kemudian buka file app/init.php.
Kemudian ubah code nya menjadi seperti ini :

<?php
/*
file : app/init.php
pujiermanto(codesyariah - 2019)
*/

spl_autoload_register(function($class){

  $class=explode('\\',$class);

  // echo "<pre>";
  // var_dump($class);
  // echo "</pre>";

  $class=end($class);

  if($class){
      require_once $class.'/'.$class.'.php';
  }else{
      echo "<h1>Sory class tidak tersedia</h1>";
  }

});


use \app\BaseClass\BaseClass;
use \app\Add\Add;
use \app\Substract\Substract;
use \app\Multiply\Multiply;
use \app\Divide\Divide;
use \app\Modulus\Modulus;
use \app\GanjilGenap\GanjilGenap;

$base = new BaseClass;

$add = new Add;

$sub = new Substract;

$mult = new Multiply;

$div = new Divide;

$mod = new Modulus;

$x = new GanjilGenap;

Silahkan dicoba di web browser kalian masing-mas ing, jika ada kesalahan jangan malu untuk bertanya, inshaallah saya akan senang hati membantu.

Ok yahh … mudah difahami kan, kalian harus mencobanya langsung di web server kalian, sesuai dengan prinsip pemrogramman yaitu amati, tiru dan modifikasi.
Ok ! Sekian dari saya.

saya harap tulisan ini dapat bermanfaat untuk kalian.

Implementasi namespace serupa ada di repository berikut :

Learn WebDev salam

Puji Ermanto

Join Newsletter
Get the latest news right in your inbox. We never spam!
Puji Ermanto
Ditulis Oleh Puji Ermanto Follow
Adalah seorang freelancer web developer, blogger, beberapa waktu lalu mengerjakan Project sebagai Fullstack Web Developer di Sebuah marketplace yaitu
PT. Syoobe Inti Perdana(Syoobe) - Jakarta
Dan di beberapa pengalaman sebelumnya bekerja sebagai web developer sekaligus IT Staf di
PT.Gemilang Citrus Berjaya(ourcitrus) - Sidoarjo