Про архітектуру, бази даних та девопс для розробників без води | Highload fwdays онлайн
×Закрыть
PHP програміст
  • Шаблони для шаблонів шаблонізатора

    Основний акцент статті саме на підході до генерації форм, а XSLT я використав лише для прикладу. Я не frontend-розробник тому не знаю як цей механізм можна реалізувати на клієнті (React, Angular, Vue.js, etc).

    На самом деле правильный второй способ — и оптимальный в данном случае — иметь динамический view, т.е. генерировать на сервере (php, java, etc) или клиенте (react, angular, elm, etc) форму, куда потом развертывать модель.

    В другому способі, вказаному в статті, «конфігурація» форми зберігається саме в контролері із-за простоти реалізації, але порушує правила архітектурного шаблону MVC.

    Можливо ви пропонуєте четвертий спосіб, з врахуванням можливостей та особливостей шаблонізатора на клієнті? Тоді «конфігурація» форми зберігається в View на сервері, а її перетворення в форму відбувається на клієнті. Особисто мені ця ідея імпонує.

  • MS SQL Server: реалізація підтримки графової моделі даних

    Гарна стаття, дякую. Хоч не моя спеціалізація, але цікаво та корисно для загального розвитку.

  • Як автоматизувати валідацію даних в PHP

    Я бачу ви новачок і взагалі нічого не тямите в валідації, не знаєте навіть її основ. Введу вас швиденько в курс справи:

    1) Валідація необхідна для перевірки вхідних даних, як правило тих, що вводять користувачі сайтів у формі. Там десь в середньому з десяток змінних (максимум 20-30), які необхідно перевірити. Як ви розумієте про валідацію мільйонів параметрів і мови не йде. Тому швидкодія тут не грає ніякої ролі, про що я згадував в статті.

    2) Всі дані з форми пересилаються за допомогою текстового протоколу HTTP і всі значення масиву $_POST, відповідно, будуть мати по замовчуванню тип string. Тому is_bool та подібні їм функції вам абсолютно нічим не допоможуть. Це має знати кожен.

    3) Розробники з WHATWG та W3C ввели в стандарт HTML5 підтримку валідації даних форми саме за допомогою регулярних виразів (атрибут pattern). Гадаю там люди розумніші за нас з вами й краще знають як саме проводити валідацію.

    Вивчіть спочатку хоча б основи PHP та HTML щоб не писати дурниці в коментарях.

  • Як автоматизувати валідацію даних в PHP

    ну або розв’язати проблему, яка іншим не піддавалась

  • Як автоматизувати валідацію даних в PHP

    Якщо у вас щось погано закінчувалось це зовсім не означає що і в інших буде так само

  • Як автоматизувати валідацію даних в PHP

    А де все однозначно? Життя складне, в ньому є багато різних зацікавлених сторін і в кожного своя правда.

  • Як автоматизувати валідацію даних в PHP

    Якщо є голова на плечах — розбереться, якщо немає — нічим не можу допомогти.

  • Як автоматизувати валідацію даних в PHP

    У вас код не покрыт тестами

    В статті наведений простий приклад і якщо вам, щоб його зрозуміти, необхідні тести — пишіть, я не забороняю.

    Есть категория кодеров — fullstack copy-paste developer

    Я пишу статті для людей які думають головою та за дії ідіотів відповідальності нести не збираюсь. Не перекладайте проблему з хворої голови на здорову.

    www.php.net/manual/ru/funcref.php

  • Як автоматизувати валідацію даних в PHP

    Дякую, мій приклад як раз розроблений для бекенду

  • Як автоматизувати валідацію даних в PHP

    я хотел взять код и протестировать, а тут оказывается ничего нет

    Програмний код в статтях на DOU в більшості випадків подається в такому ж вигляді як і в мене. Але ви їм чомусь свої безпідставні вимоги не висуваєте. Цікаво чому?

    еще надо самому выдирать из статьи

    Це не є готовий продукт, який можна звантажити, встановити та тестувати. Це лише приклад використання, про що я чітко написав в статті та багатьом вашим колегам ботам в коментарях.

    Інформацію про незрозумілі для вас команди можете почитати тут:
    www.php.net/manual/ru/function.list
    www.php.net/...​anual/ru/function.explode
    www.php.net/manual/ru/function.date
    www.php.net/...​ual/ru/function.strtotime

  • Як автоматизувати валідацію даних в PHP

    Дякую! Добре що ви це написали, бо в мене таке враження що я цілий день з ботами переписуюсь :(

  • Як автоматизувати валідацію даних в PHP

    я клієнтам не втюхую лісапеди.

    Я намагався вам пояснити, що в реальному житті неможливо весь час спиратись тільки на готові рішення. Деколи їх потрібно адаптовувати або повністю переписувати й професійні програмісти повинні вміти це робити. Але ви, на превеликий жаль, не в змозі вийти за рамки своїх обмежень. Ну що ж, це не моя провина, я зі свого боку зробив все що міг.

    залежить від вказаних обставин.

    Вам потрібно навчитись точніше висловлювати свою думку. Бо якщо ви пишете свій код так само незрозуміло як і коментарі — я не позаздрю вашим колегам :)

    звісно ні :)

    Ну нарешті ви хоч щось визнали :)

    ви написали нікому не потрібне рішення

    Коли ви висловлюєте свою персональну думку — це нормально, в нас свобода слова і ви маєте на це право. Але коли ви висловлюєте думку за всіх — це манія величі й над цим потрібно працювати :)

    ніякого ноу хау воно не має.

    Чому обов’язково має бути якесь ноу хау? З якого дива ви мені якісь вимоги висуваєте?

    що ви хтіли показати — незрозуміло.

    Мені дуже шкода що ви нічого не зрозуміли, але це ваші особисті проблеми й не потрібно їх перекидати на мене.

    як то кажуть — кожен початківець пише свій логер, парсер json, та ось, валідацію. і вважає що це якись важливий приклад

    Яка вам різниця хто що пише і хто що вважає? Чому вас це так сильно зачіпає? Ви тут з якої сторони?

    Читачі, які вважають, що я написав щось неважливе, просто закривають сторінку в браузері та й живуть собі далі. А ви вже довгий час, ледь не з піною у рота, намагаєтесь всім довести що автор неправильний, стаття моя неправильна і код в мене неправильний. Таке враження що ви одержимі мною :)

    Поддержал: Іванченко Андрій
  • Як автоматизувати валідацію даних в PHP

    Який репозиторій? Який проєкт? Прокиньтесь!
    Вам показали можливий приклад використання, а ви вже вимагаєте готове рішення.

    Поддержал: Taras Soroka
  • Як автоматизувати валідацію даних в PHP

    зазвичай головна мета — щоб клієнт потім не зміг піти до інших

    Мені дуже шкода, що ви так негарно відноситись до своїх клієнтів.
    Ну нехай це буде на вашій совісті :)

    проект повинен задоволняти функціональним вимогам.

    Ви виграли приз «Пан очевидність» :)

    ок, перечитую себе:
    так що дві — точно буде, у зрілому проекті.
    тому й три рівня, а не «мені здається надлишковою»

    Так 2 чи 3? Чи ви навіть в такому простому питанні не можете визначитись?

    ну, працюю з дітьми, «Hello World» — то перші 15 хвилин 1го заняття.

    А потім відразу переходите на вивчення зрілого мега проєкту в 100500 рядків кода, перевіреного десятиліттями експлуатації?

    а вчитися завжди краще на зразках доброго коду, аніж вигадувати колесо.

    Всі зразки доброго коду спочатку були колесами, потім велосипедами, а вже потім, з часом, частина з них, що виживала — ставали зрілими. Звичайний еволюційний процес. Людині з вашим досвідом це мало би бути відомо.

  • Як автоматизувати валідацію даних в PHP

    Для таких випадків я використав «запобіжник» у вигляді конвертації за допомогою функції strtotime у timestamp та назад.

    $value = '2019-02-29 20:47:34';
    var_dump($value == date('Y-m-d H:i:s', strtotime($value)));  // false
    
  • Як автоматизувати валідацію даних в PHP

    ... прототип, розроблений мною для власних потреб. А вам, можливо, доведеться адаптовувати його під себе.
  • Як автоматизувати валідацію даних в PHP

    для таких проектів можно обрати тільки компоненту валідації.

    Можна, а можна написати самому

    Але зазвичай такі проети теж не потребують писати базовий функционал.

    Різні проєкти мають різні потреби

    тобто валідацію пишем тільки одну, скажімо на фронтенді?
    і довіряємо тому всьому що з нього прийде? ;)

    Звичайно що мінімум мають бути дві, бо на фронтенді валідацію легко обійти. Це ж очевидно.

    тому й три рівня, а не «мені здається надлишковою»

    Спочатку ви пишете, що двох може бути достатньо, потім що треба три валідації.
    Ви вже визначтесь з цим питанням, це ж важливо для безпеки.

    але я б радив вивчати зрілі реалізації

    «Hello World» та подібні приклади достатньо зрілі для навчання?
    Чи ви пропонуєте PHP вивчати відразу з фреймворка?

  • Як автоматизувати валідацію даних в PHP

    Саме в моєму випадку ввід всіх даних відбувається в адміністративній частині сайту, де необхідна валідація. А стандартний перегляд сторінок сайту відбувається в іншій частині сайту, де використовується зовсім інший програмний код з іншою архітектурою, в якій валідація повністю відсутня. Такий «розподіл обов’язків» дає можливість максимально адаптувати (спеціалізувати) архітектуру під конкретні потреби.

  • Як автоматизувати валідацію даних в PHP

    і не треба. бо у кожному розвиненому фреймворку не один рік існує.

    Не всі проєкти пишуться на готових фреймворках. Трапляються такі, на яких необхідна максимальна оптимізація. До того ж цей приклад може бути корисним для тих хто вивчає PHP.

    коли проект великий, то там проблеми з валідацією по бізнес правилам, а не базовим типам.

    Перевірка по бізнес-логіці, приклад якої ви навели, немає ніякого відношення до теми моєї статті конкретно та до валідації вхідних даних взагалі.

    і, у великих проектах валідацію по базовим типам частенько виносять у constraints БД.

    А от ця тема мене дуже цікавить, бо потрійна валідація (Front, Back, DB) мені здається надлишковою. Буду дуже вдячний якщо підкажете де можна про це прочитати. Особливо цікавить практичний аспект з точки зору безпеки.

  • Як автоматизувати валідацію даних в PHP

    Дякую за підтримку та поради!

    1. Я частенько читаю технічні статті на DOU та не пригадую щоб вони всі починались з аналізу готових рішень.
    2. Я люблю складні специфічні проєкти, що потребують індивідуального підходу.
    3. Річ у тім, що моя мета робити те, що краще для конкретного проєкту, а не створювати альтернативу наявним фреймворкам для конкуренції з ними.

    Тобто в мене зовсім інший підхід, притаманний більш продуктовим компаніям. Але більшість коментаторів, мабуть, із-за своєї аутсорсинг спрямованості, вирішили що я намагаюсь конкурувати з наявними фреймворками чи бібліотеками :(

← Сtrl 1234 Ctrl →