В мир веб-технологий я пришёл где-то в 1998-м году. Админил веб-сервера, писал понемногу на Perl и PHP, но при этом профессионально веб-программированием не занимался никогда – так, скорее для себя веду несколько проектов средней руки. Ну и потому, что плох тот админ, что не может разобраться в косяках разработчиков и подсказать, где что поправить. Опять же — тут админку надо наваять, там ещё что-то…
Потом – семья, дети, времени стало не хватать и из веб-разработки я выпал. А когда вернулся спустя несколько лет – мама родная, как всё поменялось. Вместо привычной табличной вёрстки – блочная, да ещё и всё неоднозначно; вместо одиноких js-скриптиков – Jquery и прочие фреймворки. Мир не стоит на месте. Назрела проблема…
Хорошо, когда веб-разработкой занимаются большие студии, где на каждом направлении сидит целая команда. А если проект небольшой – то получается, что современный веб-разработчик-одиночка должен знать 5 языков: что-то серверное (PHP/Perl/Python etc), SQL, HTML, CSS и Javascript. Если занимаешься профессионально разработкой фуллтайм – наверное, оставаться «в струе» по всем направлениям ещё реально, а вот если надо просто изредка писать небольшие приложения… думаю, я с такой проблемой не одинок.
Про серверную часть – более-менее ясно: серверная часть всегда работает одинаково. А вот особенности вёрстки и JS в различных браузерах и даже в различных версиях этих браузеров – это камень, о который можно споткнуться и разбить себе голову, потому как нарабатывается это всё исключительно на собственном опыте. «Вот для хрома мы пропишем такой стиль, но в IE этот тег не работает и вместо него надо писать другой» — все сталкивались, наверное. Ну в том, что касается вёрстки, в простых случаях можно использовать тот же Bootstrap, а вот JS…
В итоге я задумался: а почему, спрашивается, в XXI-м веке я должен на коленке писать обработчик событий на JS, отправку ajax-запросов на сервер, потом обработчик этих запросов и отправку ответов на PHP (например), потом обработчик этих ответов опять же на JS… нога сломай себе сам. И стал искать. И нашёл.
Есть на PHP такой фреймворк – Raxan. По функциональности топовым фреймворкам он, конечно, в подмётки не годится – работа с БД, локализация и прочие вкусности у него, прямо скажем, в очень зачаточном состоянии. Но killer-feature у него другая: он позволяет работать с элементами страницы из PHP. То есть я могу прямо на PHP написать «если на странице нажали кнопку с id=”mybutton” – то положить такой-то текст в div с id=”errortext”, а кнопку сделать неактивной». И станет так. Более того, именно на такой режим работы он и ориентирован.
Никаких тебе самописных ajax, обработчиков – достаточно пары инклудов. Вообще ни строчки кода на JS. Причём этот механизм легко встраивается не только в новые проекты, а и в уже существующие.
Особо расписывать тут не буду, для интересующихся – на сайте есть документация и много примеров. От себя скажу, что пару интранетных веб-приложений я на этом фреймворке написал, хотя помучиться пришлось.
Есть только один минус – проект, увы, остановился в развитии больше двух лет назад. Может, майнтайнеру надоело, а может ещё что-то – но… не развивающийся проект = мёртвый проект.
И вот на закуску вопрос к многоуважаемому сообществу: может, кто-нибудь знает похожую функциональность в составе других, более живых PHP-фреймворков? Или отдельные библиотеки? Идея-то красивая…
Потом – семья, дети, времени стало не хватать и из веб-разработки я выпал. А когда вернулся спустя несколько лет – мама родная, как всё поменялось. Вместо привычной табличной вёрстки – блочная, да ещё и всё неоднозначно; вместо одиноких js-скриптиков – Jquery и прочие фреймворки. Мир не стоит на месте. Назрела проблема…
Хорошо, когда веб-разработкой занимаются большие студии, где на каждом направлении сидит целая команда. А если проект небольшой – то получается, что современный веб-разработчик-одиночка должен знать 5 языков: что-то серверное (PHP/Perl/Python etc), SQL, HTML, CSS и Javascript. Если занимаешься профессионально разработкой фуллтайм – наверное, оставаться «в струе» по всем направлениям ещё реально, а вот если надо просто изредка писать небольшие приложения… думаю, я с такой проблемой не одинок.
Про серверную часть – более-менее ясно: серверная часть всегда работает одинаково. А вот особенности вёрстки и JS в различных браузерах и даже в различных версиях этих браузеров – это камень, о который можно споткнуться и разбить себе голову, потому как нарабатывается это всё исключительно на собственном опыте. «Вот для хрома мы пропишем такой стиль, но в IE этот тег не работает и вместо него надо писать другой» — все сталкивались, наверное. Ну в том, что касается вёрстки, в простых случаях можно использовать тот же Bootstrap, а вот JS…
В итоге я задумался: а почему, спрашивается, в XXI-м веке я должен на коленке писать обработчик событий на JS, отправку ajax-запросов на сервер, потом обработчик этих запросов и отправку ответов на PHP (например), потом обработчик этих ответов опять же на JS… нога сломай себе сам. И стал искать. И нашёл.
Есть на PHP такой фреймворк – Raxan. По функциональности топовым фреймворкам он, конечно, в подмётки не годится – работа с БД, локализация и прочие вкусности у него, прямо скажем, в очень зачаточном состоянии. Но killer-feature у него другая: он позволяет работать с элементами страницы из PHP. То есть я могу прямо на PHP написать «если на странице нажали кнопку с id=”mybutton” – то положить такой-то текст в div с id=”errortext”, а кнопку сделать неактивной». И станет так. Более того, именно на такой режим работы он и ориентирован.
Никаких тебе самописных ajax, обработчиков – достаточно пары инклудов. Вообще ни строчки кода на JS. Причём этот механизм легко встраивается не только в новые проекты, а и в уже существующие.
Особо расписывать тут не буду, для интересующихся – на сайте есть документация и много примеров. От себя скажу, что пару интранетных веб-приложений я на этом фреймворке написал, хотя помучиться пришлось.
Есть только один минус – проект, увы, остановился в развитии больше двух лет назад. Может, майнтайнеру надоело, а может ещё что-то – но… не развивающийся проект = мёртвый проект.
И вот на закуску вопрос к многоуважаемому сообществу: может, кто-нибудь знает похожую функциональность в составе других, более живых PHP-фреймворков? Или отдельные библиотеки? Идея-то красивая…