Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Порівняння попередніх версій Попередня ревізія Наступна ревізія | Попередня ревізія | ||
|
nyanorm [2023/06/16 12:11] nightfly |
nyanorm [2023/06/16 13:46] (поточний) nightfly [Що ще?] |
||
|---|---|---|---|
| Рядок 10: | Рядок 10: | ||
| | | ||
| - | * Не накладывает никаких ограничений на именование табличек БД. | + | * Не накладає жодних обмежень на іменування табличок БД. |
| - | * Не диктует никаких условий по полям и содержанию этих табличек. | + | * Не диктує жодних умов щодо полів і вмісту цих табличок. |
| - | * Позволяет без проблем работать с уже | + | * Дозволяє без проблем |
| - | * Позволяет миксовать код как с его использованием так | + | * Дозволяє міксувати код |
| - | * Не требует | + | * Не вимагає |
| - | * Идеален для | + | * Ідеальний для |
| - | * Доступен в любой момент | + | * Доступний у будь-який момент |
| - | * Написан | + | * Написаний у наскільки це можливо мінімалістичному стилі з максимальним використанням наявних механік Ubilling. |
| - | * Минимизирует оверхеды по памяти и коллбекам. | + | * Мінімізує оверхеди за пам'яттю і коллбеками. Але це не точно. |
| - | * Позволяет наследованием модифицировать как угодно | + | * Дозволяє наслідуванням модифікувати як завгодно будь-яку |
| - | * Не предоставляет никаких требований и средств по фильтрации данных. Вы можете использовать вообще что захотите. | + | * Не виставляє жодних вимог і засобів щодо фільтрації даних. Ви можете |
| - | * Работает | + | * Працює |
| - | * Максимально очевидный синтаксис | + | * Максимально очевидний синтаксис |
| - | * Зашкаливающий уровень кавая. | + | * Зашкалюючий рівень каваю. |
| - | К сожалению, мы не нашли | + | На жаль, ми не знайшли |
| \\ | \\ | ||
| \\ | \\ | ||
| - | Если | + | Якщо |
| - | ===== Это | + | ===== Це обов'язково використовувати? ===== |
| - | **Нет!** Никто вас ни в чем не ограничивает и не заставляет использовать что-либо такое специфическое | + | |
| + | **Ні! ** Ніхто вас ні в чому не обмежує і не примушує використовувати будь-що таке специфічне у вашому новому коді, і тим паче навіть не натякає, | ||
| + | |||
| + | |||
| + | ===== З чого почати? | ||
| + | |||
| + | Для прикладу, | ||
| - | ===== С чего начать? | ||
| - | Для примера, | ||
| <code php> | <code php> | ||
| $query = " | $query = " | ||
| Рядок 48: | Рядок 51: | ||
| </ | </ | ||
| - | Правда знакомая конструкция? Осточертело, правда же? А теперь давайте тоже самое но красиво. Для | + | Правда знайома конструкція? Остогидло, правда ж? А тепер давайте теж саме, але |
| <code php> | <code php> | ||
| class payments extends NyanORM {} | class payments extends NyanORM {} | ||
| Рядок 54: | Рядок 58: | ||
| </ | </ | ||
| - | либо делаем то же самое с использованием < | + | або робимо те саме |
| <code php> | <code php> | ||
| - | $payments = new nya_payments(); | + | $payments = new nya_payments(); |
| </ | </ | ||
| - | Да, все после префикса **nya_** будет развернуто в имя таблички as is и для нее будет автоматически сгенерирована модель. | + | Так, усе після префіксу **nya_** буде розгорнуто в ім'я таблички as is і для неї буде автоматично згенеровано модель. |
| - | Получаем все записи | + | отримуємо всі записи |
| <code php> | <code php> | ||
| - | $allPayments=$payments-> | + | $allPayments=$payments-> |
| </ | </ | ||
| - | Да. Это | + | Так. Це типу моделька для таблички payments |
| <code php> | <code php> | ||
| Рядок 73: | Рядок 78: | ||
| </ | </ | ||
| - | Мы что-то отвлеклись. Короче модель у нас | + | Ми щось відволіклися. Коротше модель у нас |
| <code php> | <code php> | ||
| - | class payments extends NyanORM { } // создаем модель наследованием, так как это лучше дружит | + | class payments extends NyanORM { } // створюємо модель наслідуванням, оскільки це краще дружить з автокомплітом |
| - | $payments = new payments(); // создаем объект модели | + | $payments = new payments(); // створюємо об'єкт моделі |
| - | $payments-> | + | $payments-> |
| $payments-> | $payments-> | ||
| - | $payments-> | + | $payments-> |
| - | $rawPayments = $payments-> | + | $rawPayments = $payments-> |
| debarr($rawPayments); | debarr($rawPayments); | ||
| </ | </ | ||
| - | Давайте еще раз, на примере, но с чем то-другим. Пускай это | + | Давайте ще раз, на прикладі, але з чимось іншим. Нехай це будуть світчі. І нехай ми хочемо просто отримати всі світчі. |
| <code php> | <code php> | ||
| $switches = new nya_switches(); | $switches = new nya_switches(); | ||
| Рядок 90: | Рядок 96: | ||
| </ | </ | ||
| - | Куда уже проще? | + | ну або якось так без чорної магії, в лоб: |
| + | <code php> | ||
| + | $switches = new NyanORM(' | ||
| + | $allSwitches = $switches-> | ||
| + | </ | ||
| + | |||
| + | Куди вже простіше? | ||
| - | ===== О параметрах моделей ===== | + | ===== Про |
| - | Как можно было заметить для | + | Як можна було помітити, для |
| <code php> | <code php> | ||
| $payments-> | $payments-> | ||
| - | $payments-> | + | $payments-> |
| </ | </ | ||
| - | Также если | + | Також якщо |
| <code php> | <code php> | ||
| Рядок 110: | Рядок 122: | ||
| </ | </ | ||
| - | Что даст нам | + | Що дасть нам |
| + | ===== Про очищення параметрів ===== | ||
| - | ===== О очистке параметров | + | Слід, до речі, зауважити, що після виконання методів типу getAll(), delete() і їм подібних. Усі раніше встановлені вами параметри моделей, |
| - | Следует кстати заметить, | ||
| \\ | \\ | ||
| - | Если по какой-то | + | Якщо з якоїсь |
| \\ | \\ | ||
| - | Также в любой момент, вы можете самостоятельно очистить состояние любых параметров конкретной модели использовав соответствующий сеттер со всеми пустыми параметрами. | + | Також у будь-який момент ви можете самостійно очистити стан будь-яких параметрів конкретної моделі, використавши відповідний сеттер |
| <code php> | <code php> | ||
| Рядок 128: | Рядок 140: | ||
| </ | </ | ||
| - | Заметили, | + | Помітили, |
| - | ===== Удаление данных ===== | + | ===== Видалення даних ===== |
| - | Вы не поверите. | + | |
| + | Ви не повірите. | ||
| <code php> | <code php> | ||
| Рядок 139: | Рядок 152: | ||
| </ | </ | ||
| - | ===== Кумулятивная структура data() ===== | + | ===== Кумулятивна структура data() ===== |
| - | Кумулятивная структура **data** предназначена для | + | Кумулятивна структура **data** призначена для |
| <code php> | <code php> | ||
| $object-> | $object-> | ||
| - | $object-> | + | $object-> |
| </ | </ | ||
| - | ===== Создание и изменение | + | ===== Створення та зміна записів ===== |
| - | Помните кумулятивную структуру **data()**? | + | Пам' |
| <code sql> | <code sql> | ||
| Рядок 161: | Рядок 174: | ||
| </ | </ | ||
| - | Все очень прямолинейно. | + | Усе дуже прямолінійно. |
| <code php> | <code php> | ||
| $object = new nya_someobjects(); | $object = new nya_someobjects(); | ||
| - | $object-> | + | $object-> |
| - | $object-> | + | $object-> |
| $object-> | $object-> | ||
| </ | </ | ||
| - | Заметьте, мы не указывали ручками NULL для автоинкрементного поля id, как так? А так, | + | Зауважте, ми не вказували ручками NULL для автоінкрементного поля id, як так? А так, |
| \\ | \\ | ||
| \\ | \\ | ||
| - | Окей, запись создать мы создали, а как получить ее id? Для | + | Окей, запис створити ми створили, а як отримати його |
| - | Вот | + | Ось як це працює: |
| <code php> | <code php> | ||
| - | deb($object-> | + | deb($object-> |
| </ | </ | ||
| - | Окей, | + | Окей, |
| <code php> | <code php> | ||
| $idToModify=$object-> | $idToModify=$object-> | ||
| - | $object-> | + | $object-> |
| $object-> | $object-> | ||
| $object-> | $object-> | ||
| Рядок 188: | Рядок 203: | ||
| - | ===== Включение режима отладки ===== | + | ===== Увімкнення |
| - | Мы знаем. Вы привыкли использовать для | + | |
| + | Ми знаємо. Ви звикли | ||
| <code php> | <code php> | ||
| Рядок 195: | Рядок 211: | ||
| </ | </ | ||
| - | Все, теперь все запросы к БД будут | + | Усе, тепер |
| <code bash> | <code bash> | ||
| Рядок 201: | Рядок 217: | ||
| </ | </ | ||
| - | Также вам может захотеться врубить режим глубокой отладки. Тогда в этот | + | Також вам може захотітися врубити режим глибокого відлагодження. Тоді в цей |
| <code php> | <code php> | ||
| $model-> | $model-> | ||
| </ | </ | ||
| - | ===== О исключениях ===== | + | ===== Про виключення ===== |
| - | Если вы совсем обнаглеете от вседозволенности NyanORM вам в лицо могут быть выброшены следующие исключения: | + | |
| - | * **MEOW_WHERE_STRUCT_EMPTY** - кумулятивная структура where пуста. А она нужна. Очень. | + | |
| - | * **MEOW_DATA_STRUCT_EMPTY** - кумулятивная структура data пуста. И она тоже кому-то очень нужна. | + | |
| - | * **MEOW_JOIN_WRONG_TYPE** - неверный тип JOIN. Допустимы только INNER, LEFT, RIGHT. | + | |
| - | * **MEOW_NO_FIELD_NAME** - не установлено обязательное имя поля. | + | |
| - | ===== Принципиальная | + | Якщо ви зовсім знахабнієте від вседозволеності NyanORM вам в обличчя можуть бути викинуті такі винятки: |
| - | Это где-то вот | + | |
| + | * **MEOW_WHERE_STRUCT_EMPTY** - кумулятивна структура where порожня. А вона потрібна. Дуже. | ||
| + | * **MEOW_DATA_STRUCT_EMPTY** - кумулятивна структура data порожня. І вона теж комусь дуже потрібна. | ||
| + | * **MEOW_JOIN_WRONG_TYPE** - неправильний тип JOIN. Допустимі тільки INNER, LEFT, RIGHT. | ||
| + | * **MEOW_NO_FIELD_NAME** - не встановлено обов' | ||
| + | |||
| + | ===== Принципова схема ===== | ||
| + | |||
| + | Це десь ось настільки високорівнева штука. | ||
| {{: | {{: | ||
| - | Так что да, в модулях где скорость работы с данными может быть узким местом, | ||
| - | ===== Что еще? ===== | + | Тож так, у модулях, |
| - | Короче вот пока что вам практические | + | ===== Що ще? ===== |
| + | |||
| + | Коротше ось поки що вам практичні приклади використання цього | ||
| + | |||
| + | |||
| + | Працювати наш TODO-list буде на наступній табличці в БД: | ||
| - | Работать наш TODO-list будет на следующей табличке в БД: | ||
| <code sql> | <code sql> | ||
| CREATE TABLE IF NOT EXISTS `todo` ( | CREATE TABLE IF NOT EXISTS `todo` ( | ||
| Рядок 232: | Рядок 254: | ||
| </ | </ | ||
| - | А вот и весь код нашего модуля: | + | А ось і весь код нашого модуля: |
| <code php> | <code php> | ||
| - | $todo = new nya_todo(); // Создаем модель данных при | + | $todo = new nya_todo(); //Створюємо модель даних за допомогою |
| - | //Собственно | + | //Власне todo після префікса nya_ це і є наша табличка. |
| - | $moduleBaseUrl = '? | + | $moduleBaseUrl = '? |
| - | $messages = new UbillingMessageHelper(); | + | $messages = new UbillingMessageHelper(); |
| $result = ''; | $result = ''; | ||
| - | // | + | // |
| $inputs = wf_TextInput(' | $inputs = wf_TextInput(' | ||
| $inputs .= wf_Submit(__(' | $inputs .= wf_Submit(__(' | ||
| Рядок 248: | Рядок 270: | ||
| show_window(__(' | show_window(__(' | ||
| - | // | + | // |
| if (ubRouting:: | if (ubRouting:: | ||
| - | //заполняем новыми данными структуру data предварительно отфильтровав их средствами ubRouting | + | //заповнюємо новими даними структуру data, попередньо відфільтрувавши їх засобами ubRouting |
| $todo-> | $todo-> | ||
| - | $todo-> | + | $todo-> |
| - | ubRouting:: | + | ubRouting:: |
| } | } | ||
| - | // | + | // |
| if (ubRouting:: | if (ubRouting:: | ||
| - | //выставляем параметр where в удаляемую id, предварительно убедившись, | + | //виставляємо параметр where у id, котра видаляється, попередньо переконавшись, |
| $todo-> | $todo-> | ||
| - | $todo-> | + | $todo-> |
| ubRouting:: | ubRouting:: | ||
| } | } | ||
| - | // | + | // |
| if (ubRouting:: | if (ubRouting:: | ||
| - | //Дальше ведь все очевидно, | + | //Далі ж усе очевидно, |
| $todo-> | $todo-> | ||
| $todo-> | $todo-> | ||
| Рядок 273: | Рядок 295: | ||
| } | } | ||
| - | // | + | // |
| - | $todo-> | + | $todo-> |
| - | $allTodos = $todo-> | + | $allTodos = $todo-> |
| if (!empty($allTodos)) { | if (!empty($allTodos)) { | ||
| Рядок 284: | Рядок 306: | ||
| $cells = wf_TableCell($each[' | $cells = wf_TableCell($each[' | ||
| $actControls = wf_JSAlert($moduleBaseUrl . '& | $actControls = wf_JSAlert($moduleBaseUrl . '& | ||
| - | // | + | // |
| $editInputs = wf_HiddenInput(' | $editInputs = wf_HiddenInput(' | ||
| $editInputs .= wf_TextInput(' | $editInputs .= wf_TextInput(' | ||
| Рядок 290: | Рядок 312: | ||
| $editForm = wf_Form('', | $editForm = wf_Form('', | ||
| $actControls .= wf_modalAuto(web_edit_icon(), | $actControls .= wf_modalAuto(web_edit_icon(), | ||
| - | //Фу так | + | //Фу так |
| $cells .= wf_TableCell($actControls); | $cells .= wf_TableCell($actControls); | ||
| $rows .= wf_TableRow($cells, | $rows .= wf_TableRow($cells, | ||