PHP OOP-daky ad meýdanlarynda klass lakaplary
Bizde iki sany Data klassy bolsun,
olara dürli ad meýdanlaryna degişli.
Bir klassyň içinde bu iki klasyň hem
objektlerine biz gerek bolsun:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // objekt döredýäris
$data2 = new \Core\Admin\Data; // objekt döredýäris
}
}
?>
Biz klaslary çagyrmagy use buýrugy arkaly
ýeňilleşdirmek isleýändigimizi aýdalym. Bu ýagdaýda
biziň garşymyza bir problema çykar: iki klas hem
Data atly, bu bolsa atlar çaknyşygynyň boljakdygyny aňladýar:
<?php
namespace Project;
// Atlar çaknyşygy bolar:
use \Core\Users\Data; // birinji klasy birikdirýäris
use \Core\Admin\Data; // ikinji klasy birikdirýäris
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Bu meseläni çözmek üçin ýörite
as buýrugy bar, ol birikdirilýän
klassa lakap bermäge - bu faýlda
klasyna şu at bilen girip boljakdygyny - rugsat berýär.
Biz öz Data klaslarymyzyň atlaryny çalışalyň:
<?php
namespace Project;
use \Core\Users\Data as UsersData;
use \Core\Admin\Data as AdminData;
class Test
{
public function __construct()
{
$data1 = new UsersData;
$data2 = new AdminData;
}
}
?>
Aşakdaky kody use ulanyp,
ýeňilleşdiriň:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Aşakdaky kody use ulanyp,
ýeňilleşdiriň:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>