2017 © Pedro PelΓ‘ez
 

library data-autocomplete

Data Autocomplete

image

ceive/data-autocomplete

Data Autocomplete

  • Saturday, March 17, 2018
  • by Ceive
  • Repository
  • 1 Watchers
  • 0 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Ceive.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'   => 'ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ дСйствиС'
    ]]
];


The Versions

17/03 2018

dev-master

9999999-dev

Data Autocomplete

  Sources   Download

Apache-2.0

The Development Requires

by Alexey Kutuzov