dev-master
9999999-devData Autocomplete
Apache-2.0
The Development Requires
by Alexey Kutuzov
Wallogit.com
2017 © Pedro PelΓ‘ez
Data Autocomplete
Component a helper autocomplete oriented system create, (*1)
Π‘ΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΠ²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π°ΡΡΡΠΈΠ±ΡΡΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠΏΡ ΡΡΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²., (*2)
ΠΠ²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΡ Π±ΡΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:, (*3)
ΠΠ²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ - ΡΡΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΠΊΠ° Π΄Π»Ρ Π‘Π’Π Π£ΠΠ’Π£Π Π« ΠΠΠΠΠ«Π₯ ΠΊΠΎΡΠΎΡΡΡ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ., (*4)
ΠΠ²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ - ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΌΠ°ΡΠΊΡ Π‘Π’Π Π£ΠΠ’Π£Π Π« ΠΠΠΠΠ«Π₯ Π½Π΅ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠ° ΡΠ°ΠΌΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄ΡΡΠ³ΡΡ Π±ΠΎΠ»Π΅Π΅ Π±ΠΎΠ»ΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΊΠ°ΠΊ ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ.., (*5)
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ - ΠΠ΅ΠΊΠΎΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°Ρ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ ΠΏΠΎ ΠΏΡΡΠΈ ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π·Π°ΠΏΡΠΎΡ, ΠΈ Π΅ΡΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»ΠΈΡΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π΄Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΠ° ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΠ° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π½ΡΡ Π² ΡΠ°Π·Π½ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΡ ΠΈ Π°ΡΡΠΈΠ±ΡΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ , (*6)
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΈΠΏΠ° Π² Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΠ΅:, (*7)
[integer, string, float, null, boolean]
Π’Π°ΠΊ-ΠΆΠ΅ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ ΠΊΡΠΎΠΌΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ UI, (*8)
Π’Π°ΠΊ-ΠΆΠ΅, Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΠ²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ Π΅ΡΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ Data Structure Interface, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π°Π²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΠ°, ΠΈΠΌΠ΅ΡΡΡΡ ΠΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠΈΠΏΠ°(ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΡΡΡΠΊΡΡΡΡ) ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ ΠΏΠΎ ΡΠΈΠΏΠ°ΠΌ, Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΡΠΈΠΏΠ°ΠΌ Π² TypeScript, (*9)
namespace Ceive\Data\Autocomplete;
$manager = new Manager();
$manager->register(new AutocompleteClass('User',[
'username' => 'string',
'password' => 'string',
'login_counts' => 'int',
'profile' => '<User\Profile>'
]));
$manager->register(new AutocompleteClass('User\Profile',[
'first_name' => 'string',
'last_name' => 'string',
'second_name' => 'string',
'user' => '<User>'
]));
$manager->register($autocomplete = new Autocomplete([
'user' => '<User>',
'value' => 'mixed',
]));
$user = $manager->getByClassname('User');
$entries = $autocomplete->entries();
$this->assertEquals([
'user' => '<User>',
'value' => 'mixed',
],$autocomplete->entries());
$this->assertEquals([
'user' => '<User>',
],$autocomplete->entriesLink());
// Language Labeled
//$autocomplete->getTitle($entry);
//$autocomplete->getDescription($entry);
//$autocomplete->getType($entry);
// AbsolutePath
//$autocomplete->getAbsolutePath($entry_key);
$label = [
'lang' => null,
'key' => 'user',
'description' => null,
'cases' => [[
'lang' => 'ru_RU',
'title' => 'ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ',
'description' => 'ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅'
]]
];
$label = [
'lang' => null,
'key' => 'current_user',
'description' => null,
'cases' => [[
'lang' => 'ru_RU',
'title' => 'ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ',
'description' => 'ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅'
]]
];
Data Autocomplete
Apache-2.0