
use Keyword
- Sebelumnya kita sudah tahu bahwa untuk menggunakan class, function atau constant di namespace kita perlu menyebutkan nama namespace nya di awal
- Jika terlalu sering menggunakan class, function atau constant yang sama, maka terlalu banyak duplikasi dengan menyebutkan namespace yang sama berkali-kali
- Hal ini bisa kita hindari dengan cara, mengimport class, function atau constant tersebut dengan menggunakan kata kunci use
<?php
namespace Data\One{
class Conflict
{
}
}
namespace Data\Two {
class Conflict
{
}
}
<?php
namespace Helper;
function helpMe ()
{
echo "HELP ME" . PHP_EOL;
}
const APPLICATION = "Belajar PHP OOP";
<?php
require_once "data/Conflict.php";
require_once "data/Helper.php";
use Data\One\Conflict;
use function Helper\helpMe;
use const Helper\APPLICATION;
//Object
$conflict1 = new Conflict();
$conflict2 = new Data\Two\Conflict();
//Methode/ Function
helpMe();
//Constant
echo APPLICATION . PHP_EOL;
Alias
- Saat kita menggunakan use, artinya kita tidak perlu lagi menggunakan nama namespace diawal, ketika class membuat object menggunakan class,method, constant tersebut
- Namun bagaimana jika ternyata nama class nya sama ?
- Untungnya PHP memiliki fitur yang namanya alias
- Alias adalah kemampuan membuat nama lain dari class, function atau constant yang ada
- Kita bisa menggunakan kata kunci as setelah melakukan
<?php
require_once "data/Conflict.php";
require_once "data/Helper.php";
use Data\One\Conflict as conflict1;
use Data\Two\Conflict as conflict2;
use function Helper\helpMe as help;
use const Helper\APPLICATION as APP;
//Object
$conflict1 = new Conflict1();
$conflict2 = new Conflict2();
//Methode/ Function
help();
//Constant
echo APP . PHP_EOL;
Group use Declaration
- Kadang kita butuh melakukan import banyak hal di satu namespace yang sama
- PHP memiliki fitur grup use, dimana kita bisa import beberapa class, function atau constant dalam satu perintan use
- Untuk melakukan itu, kita bisa menggunkan kurung {}
<?php
namespace Data\One{
//Import Group
class Conflict
{
}
//Import Group
class Sample
{
}
//Import Group
class Dummy
{
}
}
namespace Data\Two {
class Conflict
{
}
}
<?php
namespace Helper;
//Import Group
function helpMe ()
{
echo "HELP ME" . PHP_EOL;
}
const APPLICATION = "Belajar PHP OOP";
<?php
require_once "data/Conflict.php";
require_once "data/Helper.php";
use Data\One\{Conflict as Conflict1, Sample, Dummy};
use function Helper\{helpMe};
$conflict = new Conflict1();
$sample = new Sample();
$dummy = new Dummy();