, (*1)
Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Autoloader Π΄Π»Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Movephp
ΠΡΠΎ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ½ ΡΠΊΠ°Π½ΠΈΡΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π² ΠΏΠΎΠΈΡΠΊΠ°Ρ
*.php ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ² (Π² Ρ.Ρ. Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ
,
Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ ΡΡΠ΅ΠΉΡΠΎΠ²).
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½,
ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ ΡΡΠ΅ΠΉΡΡ,
ΠΊΠ»Π°ΡΡΡ-ΠΏΠΎΡΠΎΠΌΠΊΠΈ., (*2)
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π΄Π°Π½Π½ΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠΉ
Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²., (*3)
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΡΡΠ΅ΠΉΡ ΠΈ Ρ.Π΄., (*4)
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ
ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΈΠ½Π³., (*5)
ΠΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ - Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Composer.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π² Π²Π°Ρ composer.json
ΡΠ°ΠΉΠ»:, (*6)
"require": {
"movephp/classloader": "~1.0"
}
ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠ°:, (*7)
include_once('vendor/autoload.php');
use Movephp\ClassLoader\{Autoload, Map};
$autoload = new Autoload(
new Map\Map()
);
$autoload->setScanPaths(__DIR__ . '/src', __DIR__ . '/vendor');
$autoload->makeMap();
var_dump($autoload->map()->classes());
ΠΠ²ΡΠΎΠ·Π°Π³ΡΡΠ·ΡΠΈΠΊ
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ· ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠ°ΡΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ $autoload->register()
., (*8)
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ²
ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (PSR-6)., (*9)
$cachePool = new Symfony\Component\Cache\Adapter\FilesystemAdapter();
$autoload = new Autoload(
new Map\Map(),
$cachePool
);
$autoload->setScanPaths(__DIR__ . '/src', __DIR__ . '/vendor');
$autoload->makeMap();
$autoload->register();
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΡΠ° ΠΊΠ»Π°ΡΡΠΎΠ² Π±ΡΠ΄Π΅Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π°
ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π° ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡΡ
Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ Π±ΡΡΡΡΠΎ
Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΈΠ· ΠΊΠ΅ΡΠ°., (*10)
ΠΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ»ΡΡ movephp_classloader
Π΄Π»Ρ
ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ CacheItem
ΠΈΠ· ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ CachePool
. ΠΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ°
Autoload
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½ Π΄Π»Ρ ΠΊΠ»ΡΡΠ° CacheItem:
$autoload = new Autoload($map, $cachePool, 'mynamespace')
- Π²
ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ CacheItem
Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΊΠ»ΡΡ
mynamespace_movephp_classloader
., (*11)
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΡΡ
Π dev-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ
ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²:, (*12)
$cachePool = new Symfony\Component\Cache\Adapter\FilesystemAdapter();
$autoload = new Autoload(
new Map\Map(),
$cachePool
);
$autoload->setScanPaths(__DIR__ . '/src', __DIR__ . '/vendor');
$autoload->makeMap();
if (...some_Ρondition_here...) {
$autoload->updateMap();
}
$autoload->register();
ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ, - ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ±ΡΠΎΡΠΈΡΡ ΠΊΠ΅Ρ ΠΈ
ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ:, (*13)
$cachePool = new Symfony\Component\Cache\Adapter\FilesystemAdapter();
if (...some_Ρondition_here...) {
$cachePool->clear();
}
$autoload = new Autoload(
new Map\Map(),
$cachePool
);
$autoload->setScanPaths(__DIR__ . '/src', __DIR__ . '/vendor');
$autoload->makeMap();
$autoload->register();
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠΌΠΈΠΌΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° $autoload->setScanPaths()
Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ,
ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ/ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΎΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π°
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄Π°:, (*14)
-
$autoload->setExcludingPaths(string ...$excludePaths)
- ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ
ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ (ΠΈ Π²ΡΡ ΠΈΡ
ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅) ΠΈΠ· ΠΏΡΠΎΡΠ΅ΡΡΠ°
ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π»Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²
Ρ ΡΠ΅ΡΡΠ°ΠΌΠΈ.
-
$autoload->setOverridePaths(string ...$overridePaths)
- Π² ΡΠ»ΡΡΠ°Π΅,
Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Ρ
ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½), Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°ΠΉΠ»Ρ/ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠ³ΡΡ
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΠΊΠ»Π°ΡΡΡ, Π·Π°ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΈΠΌΡΠ½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ
ΡΠΊΠ°Π½ΠΈΡΡΠ΅ΠΌΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, Π° Π² ΠΊΠ°ΡΡΡ ΠΏΠΎΠΏΠ°Π΄ΡΡ ΠΊΠ»Π°ΡΡΡ ΠΈΠ·
$overridePaths
.
ΠΡΠΎΠ±ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ
Composer-ΠΏΠ°ΠΊΠ΅ΡΡ
ΠΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΡΡΡΡΡ ΡΠ°ΠΉΠ»Π°ΠΌ
composer.json
. ΠΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ
Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ autoload
, ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π±ΡΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΡΠ°ΠΉΠ»Ρ,
ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² Π½Π΅ΠΉ., (*15)
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌ composer-ΠΏΠ°ΠΊΠ΅ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΏΡΡΠ΅Π½Ρ,
Ρ.ΠΊ., Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½ΡΠΆΠ½Ρ ΡΠ°ΠΌ Π»ΠΈΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ²Π»ΡΡΡΡΡ
ΠΌΡΡΠΎΡΠΎΠΌ., (*16)
PHPUnit ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Composer
ΠΠ»Π°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΡΠ½ Π² ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΊΠ°ΠΊ
Π΄Π»Ρ Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π°, Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
:, (*17)
- ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΠΎΠΌ phpUnit, Ρ.Π΅. Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½
ΠΈΠ· Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ ΠΊΠ»Π°ΡΡΠΎΠ²
PHPUnit_Framework_TestCase
ΠΈΠ»ΠΈ PHPUnit\Framework\TestCase
;
- ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Composer, Ρ.Π΅.
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½
Composer
ΠΈΠ»ΠΈ Π² Π»ΡΠ±ΠΎΠΌ
ΠΏΠΎΠ΄ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Composer\...
.
ΠΠ»Π°ΡΡΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ
ΠΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ
Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
:, (*18)
- ΠΡΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΡΠ°ΠΉΠ»Π° Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
exit()
(ΠΈΠ»ΠΈ die()
)
Π²Π½Π΅ ΡΠ΅Π»Π° ΠΊΠ»Π°ΡΡΠ°, Ρ.Π΅. ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΡΠ°ΠΉΠ»Π° ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π²
ΠΎΠ±ΡΠ΅ΠΉ ΠΊΠ°ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ Π² PHP ΠΊΠ»Π°ΡΡΠΎΠΌ.
Π’ΠΎΠΆΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
Π’Π°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΎΡΠΎΠ±ΡΡ ΠΎΡΠΌΠ΅ΡΠΊΡ
$item->isSafeInclude() === false
,
ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Ρ Π΄Π°Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ
ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ Π±ΡΠ΄Π΅Ρ
Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π°., (*19)
ΠΠΎΠΈΡΠΊ ΠΈ Π°Π½Π°Π»ΠΈΠ· ΠΊΠ»Π°ΡΡΠΎΠ²
Π‘ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² - ΠΎΠ±ΡΠ΅ΠΊΡ Map\Map
- ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ $autoload->map()
. Π’Π°ΠΊΠΆΠ΅, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ
Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ°Π·Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΠΊΠ»Π°ΡΡ Map\Map
ΠΈ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ scan()
:, (*20)
$map = new Map\Map();
$map->scan([__DIR__ . '/src', __DIR__ . '/vendor']);
ΠΠ΅ΡΠΎΠ΄ Map\Map::classes()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΊΠ»Π°ΡΡΠΎΠ² Π²
ΠΊΠ°ΡΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Map\Item
., (*21)
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Map\Map::find()
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΠΎΠΈΡΠΊ ΡΡΠ΅Π΄ΠΈ
ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΊΠ°ΡΡΠ΅ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ. ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΈΡΠΊΠ° Π½Π΅Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ MyNamespace\MyInterface
, Π° ΡΠ°ΠΊΠΆΠ΅
ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ² ΡΡΠΈΡ
ΠΊΠ»Π°ΡΡΠΎΠ²:, (*22)
$map->find(Map\Item::TYPE_CLASS, MyNamespace\MyInterface::class);
ΠΠ΅ΡΠΎΠ΄ find()
ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Map\Item
., (*23)
ΠΠ±ΡΠ΅ΠΊΡΡ Map\Item
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠ°ΡΡΡ - ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²-Π³Π΅ΡΡΠ΅ΡΠΎΠ²
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΌ ΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ΅., (*24)
API Reference
Movephp\ClassLoader\Autoload
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠ»Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ
Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΊΠ°ΡΡΡ ΠΈ Π΅Π³ΠΎ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ., (*25)
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
__construct(Movephp\ClassLoader\Map\MapInterface $cleanMap, Psr\Cache\CacheItemPoolInterface $cachePool = null, string $cacheKeyNamespace = '')
ΠΡΠ³ΡΠΌΠ΅Π½Ρ |
Π’ΠΈΠΏ |
ΠΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
$cleanMap |
Movephp\ClassLoader\Map\MapInterface |
DI Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ°ΡΡΡ. |
$cachePool |
Psr\Cache\CacheItemPoolInterface |
null |
ΠΠ±ΡΠ΅ΠΊΡ ΠΊΠ΅ΡΠ° Π΄Π»Ρ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΡΡ. ΠΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π΅ Π·Π°Π΄Π°Π½. |
$cacheKeyNamespace |
string |
ΠΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° |
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½ Π΄Π»Ρ ΠΊΠ»ΡΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊΠ΅ΡΠ°. |
ΠΠ΅ΡΠΎΠ΄Ρ
ΠΠ΅ΡΠΎΠ΄ |
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
setScanPaths(string ...$scanPaths): void |
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΡΠΈ ΠΊ ΡΠΊΠ°Π½ΠΈΡΡΠ΅ΠΌΡΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌ ΠΈ ΡΠ°ΠΉΠ»Π°ΠΌ. ΠΡΠ·ΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
|
setExcludingPaths(string ...$excludePaths): void |
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΎΠΏΡΡΠ΅Π½Ρ ΠΏΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ΅ΡΠΎΠ΄ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
|
setOverridePaths(string ...$overridePaths): void |
Π ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΊΠ»Π°ΡΡΠΎΠ² Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½), ΠΊΠ»Π°ΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ
/ΡΠ°ΠΉΠ»Π°Ρ
, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π· Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ΠΊΠ°ΡΡΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΏΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ², Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Movephp\ClassLoader\Exception\ClassDuplicateException . ΠΠ΅ΡΠΎΠ΄ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
|
makeMap(): void |
ΠΡΡΠ°Π΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ· ΠΊΠ΅ΡΠ° ΠΈ, Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΠΊΠ°ΡΡΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π΅Ρ Π² ΠΊΠ΅Ρ. |
updateMap(): void |
ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΊΠ°ΡΡΡ, Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΈΠ· ΠΊΠ΅ΡΠ° ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ makeMap() . Π’Π°ΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΡΡ Ρ Π½ΡΠ»Ρ. Π ΡΠ΅Π»ΠΎΠΌ ΠΊΠ°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π°/ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π·Π° ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ. ΠΡΠ»ΠΈ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°. |
map(): Map\MapInterface |
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ makeMap() Π½Π΅ Π±ΡΠ» Π²ΡΠ·Π²Π°Π½ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
|
isClassExists(string $className, Map\ItemInterface &$item = null): bool |
ΠΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° (fully qualified) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΈΠΌΠ΅Π΅ΡΡΡ Π»ΠΈ ΠΎΠ½ Π² ΠΊΠ°ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π²ΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, Π² Π½Π΅Π³ΠΎ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ°ΡΡΡ (Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ Π½Π°ΠΉΠ΄Π΅Π½ Π² ΠΊΠ°ΡΡΠ΅). ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ makeMap() Π½Π΅ Π±ΡΠ» Π²ΡΠ·Π²Π°Π½ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
|
load(string $className): void |
ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠ°ΠΉΠ» Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ include_once() , Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² ΠΊΠ°ΡΡΠ΅ ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΡΠΌ. ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Movephp\ClassLoader\Map\Item::isSafeInclude() ). |
isClassLoaded(string $className): bool |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π±ΡΠ» Π»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ°Π½Π΅Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ load() . |
register(): void |
Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ load() Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ spl_autoload_register(..., true, true) . |
Movephp\ClassLoader\Map\Map
ΠΠ±ΡΠ΅ΠΊΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ
Π΅Ρ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ (ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ°) ΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ Π½Π΅ΠΉ., (*26)
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
__construct(string $itemClass = '')
ΠΡΠ³ΡΠΌΠ΅Π½Ρ |
Π’ΠΈΠΏ |
ΠΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
$itemClass |
string |
ΠΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° |
DI Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊΠ°ΡΡΡ. ΠΡΠ»ΠΈ Π½Π΅ Π·Π°Π΄Π°Π½, Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡ Movephp\ClassLoader\Map\Item . ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. |
ΠΠ΅ΡΠΎΠ΄Ρ
ΠΠ΅ΡΠΎΠ΄ |
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
scan(array $scanPaths, array $excludePaths = [], array $overridePaths = []): int |
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠ΅ ΡΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° - ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΡΡΠΎΠΊ, ΠΏΠΎ ΡΠΌΡΡΠ»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² setScanPaths() , setExcludingPaths() ΠΈ setOverridePaths() ΠΊΠ»Π°ΡΡΠ° Movephp\ClassLoader\Autoload . ΠΠΎΠ²ΡΠΎΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. |
classes(): array |
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΡ
Π² ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ
ΠΏΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Movephp\ClassLoader\Map\Item . |
find(int $type = Movephp\ClassLoader\Map\ItemInterface::TYPE_ANY, string $parentClassName = '', bool $includableOnly = true): array |
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ ΡΡΠ΅Π΄ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ. $type - ΡΠΈΠΏ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΌ. Π½ΠΈΠΆΠ΅. $parentClassName - Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π±ΡΠ΄ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° Ρ ΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. $includableOnly - Π΅ΡΠ»ΠΈ false , Π±ΡΠ΄ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ»Π°ΡΡΡ, Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΡΠΌ. Movephp\ClassLoader\Map\Item::isSafeInclude() ). |
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° $type
ΠΌΠ΅ΡΠΎΠ΄Π° find()
:
- Movephp\ClassLoader\Map\ItemInterface::TYPE_CLASS
- Movephp\ClassLoader\Map\ItemInterface::TYPE_ABSTRACT
- Movephp\ClassLoader\Map\ItemInterface::TYPE_INTERFACE
- Movephp\ClassLoader\Map\ItemInterface::TYPE_TRAIT
- ΠΈΠ»ΠΈ Π»ΡΠ±Π°Ρ ΡΡΠΌΠΌΠ° ΡΡΠΈΡ
ΠΊΠΎΠ½ΡΡΠ°Π½Ρ (Movephp\ClassLoader\Map\ItemInterface::TYPE_ANY
- ΡΡΠΎ ΡΡΠΌΠΌΠ° ΠΈΡ
Π²ΡΠ΅Ρ
)., (*27)
Movephp\ClassLoader\Map\Item
ΠΠ±ΡΠ΅ΠΊΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ°ΡΡΡ: ΠΊΠ»Π°ΡΡ,
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΉΡ, Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΉ ΠΏΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ., (*28)
ΠΠ΅ΡΠΎΠ΄Ρ
ΠΠ΅ΡΠΎΠ΄ |
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
getFilePath(): string |
ΠΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ, Π³Π΄Π΅ ΠΎΠ±ΡΡΡΠ»Π΅Π½ ΠΊΠ»Π°ΡΡ. |
getType(): int |
ΠΠ΄Π½Π° ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΊΠΎΠ½ΡΡΠ°Π½Ρ: Movephp\ClassLoader\Map\ItemInterface::TYPE_CLASS , Movephp\ClassLoader\Map\ItemInterface::TYPE_ABSTRACT , Movephp\ClassLoader\Map\ItemInterface::TYPE_INTERFACE , Movephp\ClassLoader\Map\ItemInterface::TYPE_TRAIT
|
getNamespace(): string |
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½ ΠΊΠ»Π°ΡΡΠ°. |
getName(): string |
ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ° (fully qualified). |
getImports(): array |
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ - ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½. |
getParent(): string |
ΠΠΌΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. |
getInterfaces(): array |
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ - ΠΈΠΌΠ΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΡ
ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². |
getTraits(): array |
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ - ΠΈΠΌΠ΅Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΠΊΠ»Π°ΡΡΠΎΠΌ ΡΡΠ΅ΠΉΡΠΎΠ². |
getParents(): array |
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ - ΠΏΠΎΠ»Π½Π°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΊΠ»Π°ΡΡΠΎΠ². |
getInheritors(): array |
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ - ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ² (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ² ΠΈΡ
ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ² ΠΈ Ρ.Π΄.) |
isSafeInclude(): bool |
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΠ°ΠΉΠ» Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ Π±ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. |
isParsedJustNow(): bool |
ΠΡΠ» Π»ΠΈ Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ, Π² Ρ
ΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠΎΠ»ΠΆΠ΅Π½ΠΈΡ (false , Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ Π±ΡΠ» ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΈΠ· ΠΊΠ΅ΡΠ°). |
TODO
- Π‘Π΄Π΅Π»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠ΅Ρ. ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
*
ΠΈ ?
ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠ° ΡΠΊΠ°Π½ΠΈΡΡΠ΅ΠΌΡΡ
ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ
ΠΈΠ· ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²;
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΡΠΊΠ°Π½ΠΈΡΡΠ΅ΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² (ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
*.php
);
- ΠΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΏΡΡΠΌΡΡ
ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
Flysystem
ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³).