Pull to refresh

По локоть в легаси: пошагово перезапускаем устаревший портал на PHP

Level of difficultyMedium
Reading time10 min
Views11K

PHP — один из самых популярных языков веб-разработки уже около 20 лет, а самому языку скоро стукнет 30. За это время на нем написали огромное количество больших и маленьких проектов. Некоторые сайты, созданные в 90-х, 00-х и 10-х, хранят код еще с тех давних времен. И чем больше времени проходит с начала разработки, тем меньше на рынке специалистов, готовых разбираться в легаси и не самых современных технологиях.

В похожей ситуации оказался портал fishingsib.ru — один из крупнейших в рунете сайтов о рыбалке, который посещают больше 10 000 человек ежедневно. Он создавался в начале 2000-х как форум для рыбаков-любителей и пережил несколько довольно серьезных обновлений кодовой базы. Последнее из них — переезд на CakePHP 2 в 2012 году. На этом фреймворке и PHP 5 сайт жил до 2017 года.

Владелец fishingsib.ru планировал поддерживать и развивать сайт, внедрять новую функциональность, однако столкнулся с техническими проблемами. Любые доработки были очень долгими из-за неудачных архитектурных решений и сильной зависимости от устаревающего и не особенно популярного CakePHP 2. После каждого обновления появлялось множество багов. В то же время не удавалось найти новых разработчиков, потому что большинство специалистов не хотели работать в проекте с неактуальным стеком. Развитие проекта сильно замедлилось и стало понятно, что с технической частью нужно что-то делать.

Читать далее
Total votes 57: ↑57 and ↓0+57
Comments15

Уязвимости PHP-фреймворков

Reading time8 min
Views15K


10 июня компания Digital Security провела онлайн-встречу по информационной безопасности Digital Security ON AIR. Записи докладов можно посмотреть на Youtube-канале.


По материалам докладов мы выпустим цикл статей, и первая из них — об уязвимостях PHP-фреймворков уже ждет под катом.

Total votes 37: ↑34 and ↓3+31
Comments21

Дайджест интересных новостей и материалов из мира PHP за последние две недели №25 (25.08.2013 — 08.09.2013)

Reading time5 min
Views21K


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Total votes 55: ↑44 and ↓11+33
Comments10

Что нового в CakePHP 3.0.0?

Reading time6 min
Views10K
Здравствуйте, уважаемые читатели. В данной статье хотелось бы написать о новой версии CakePHP и возродить интерес к этому замечательному PHP фреймворку. Последняя заметка в блоге о CakePHP датирована почти годом назад и многие могли подумать, что фреймворк прекратил своё существование, однако это не так. Он очень активно развивается и весьма популярен в западных странах и его используют такие компании, как BMW и Hyundai.

Текущая стабильная версия CakePHP – 2.5.5. Давайте кратко посмотрим, какие возможности предоставляет этот фреймворк сейчас, а затем подробно остановимся на новинках, которые появятся в 3.0.0.
Читать дальше →
Total votes 8: ↑5 and ↓3+2
Comments7

Повышаем стабильность сессии в CakePHP 2.x

Reading time6 min
Views3.9K
От переводчика: при разработке Web-payment.ru на фреймворке CakePHP мы сталкивались с самого начала с тем, что логаут пользователей происходил каждые несколько часов, а это слишком короткий промежуток времени. При этом сколь большие значения timeout и cookieTimeout мы бы не выставляли в настройках ядра, ничего не менялось. Данная статья решила для нас эту проблему.

В прошлом году я обращался к этому вопросу как минимум дважды, но практически безрезультатно. После длительных поисков решения я снова отложил его на неопределенное время. Здесь также следует сказать, что когда дело касается отлаживания session/cookie вещей (в данном случае — аутентификации), процесс поиска багов никогда не отличался простотой, поскольку он зависит от множества факторов, которые складываясь вместе, усложняют обнаружение проблемы.

В документации Cake также не говорится, что для длительной работы php-сессий необходимо увеличить значение внутренней переменной max_lifetime. Я вообще наткнулся на нее случайно, потому что всегда думал, что об этом позаботился сам фреймворк, однако даже после того, как я сделал базу данных контейнером сессий, я не заметил каких-либо улучшений. Поэтому я подумал, что чистка памяти на стороне сервера здесь, видимо, вообще не причем, ну или по крайней мере, влияет не только она одна.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments0

Сообщество CakePHP открыло проект CakePHP TV

Reading time1 min
Views1.6K
image

CakePHP TV — это видео сайт, посвященный CakePHP и всему, что с ним связано. Команда CakeDC рада сообщить о релизе проекта CakePHP TV 1.0! Мы разрабатываем приложения, чтобы привлечь больше внимания к сообществу CakePHP. Данное приложение позволит собрать все видео ролики, созданные сообществом CakePHP, и открыть к ним доступ.

Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments2

Тонкости при работе с Sanitize в связке с save

Reading time3 min
Views6.5K
Доброго времени суток уважаемый %username%. Хотелось бы вам рассказать об одной интересной особенности работы с классом Sanitization. Данный класс является частью ядра замечательной фреймворка CakePHP и предназначен для «очистки» входящих данных. К примеру, его можно, нужно использовать для «очистки» данных передаваемых пользователем перед сохранением в базу данных. Официальная документация и примеры использования лежат тут book.cakephp.org/view/1183/Data-Sanitization. Настоятельно рекомендую каждому разработчику использующему CakePHP ознакомиться с этим классом.
Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments7

Валидатор HTML-форм

Reading time3 min
Views9.5K
Доброго времени суток уважаемый %username%.

Каждый программист хоть раз в своей жизни сталкивался с унаследованным кодом. Иногда такой код вызывает реакцию: «Что это за дрянь|лапша|говнокод, давайте его перепишем».

Так произошло и с проектом к которому я присоединился. 200-300 строчные методы, дублирование кода, процедурный подход вместо использования ООП не вызывали ни каких положительных эмоций. К счастью ПМ оказался очень адекватным человеком и не отмахнулся от просьбы выделить время на рефакторинги. Один из таких рефакторингов в итоге вылился в плагин валидации HTML-форм, которым я и хочу поделиться.
Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments2

PHP фреймворк 2013

Reading time1 min
Views44K
Идея провести голосование навеяна странной статьей, результаты которой хочется поставить под сомнение. Возможно предпочтения действительно определяются регионом и маленькой выборкой автора, поэтому предлагаю провести голосование среди большого Хабрасообщества.
Читать дальше →
Total votes 57: ↑41 and ↓16+25
Comments149

Дайджест интересных новостей и материалов из мира PHP № 33 (1 января — 12 января 2014)

Reading time5 min
Views16K


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments15

Все еще торт, часть 3.0.0

Reading time19 min
Views18K
Наконец-то вышел в релиз CakePHP 3.0.0.

Наша компания использует в разработке в том числе cakephp, как основной фреймворк для бэкэнд разработки. На протяжении четырех лет мы досконально разобрались в его преимуществах и недостатках. И, конечно, многие проблемы, которые исчезнут с переходом на 3.0 нами уже были решены, но развитие используемого инструмента не может не радовать. После этого обновления мы рассчитываем, что cakephp снова вернёт себе заслуженную популярность.


Читать дальше →
Total votes 20: ↑13 and ↓7+6
Comments3

PHP-Дайджест № 78 – интересные новости, материалы и инструменты (18 – 31 января 2016)

Reading time3 min
Views21K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Total votes 56: ↑48 and ↓8+40
Comments8

CakePHP 1.2 beta

Reading time1 min
Views745
Прошел год, как была анонсирована версия 1.2 и вот оно — наконец-то перешли рубеж альфы и ушли в бету. По мнению разработчиков, текущий релиз — лучший из всех предыдущих. В процессе разработки постоянно находился баланс между удобством и расширяемостью.
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments39

CakePHP. Разделение доступа без компонента ACL.

Reading time2 min
Views695
В данный момент я пишу систему на связке CakePHP и MS SQL. Сначала попробовал использовать стандартный компонент ACL, но выяснилось, что CakePHP не полностью поддерживает MS SQL (по крайней мере в этом компоненте). Поэтому пришлось придумать следующий метод разделения доступа.
Читать дальше →
Total votes 6: ↑2 and ↓4-2
Comments6

Стираю языковые барьеры. Бесплатно

Reading time2 min
Views1.2K
Примерно так можно озаглавить вещи, которые я делаю в свободное время вот уже несколько месяцев. После руссификации мануала по CakePHP я занялся переводом на русский язык документации по другому фреймворку.
Интересно, какому?
Total votes 66: ↑65 and ↓1+64
Comments81

CodeIgniter vs. CakePHP

Reading time6 min
Views1.8K
Ниже находится перевод статьи Джонатана Снука (Jonathan Snook) о преимуществах и недостатках двух популярных PHP фреймворков CakePHP и CodeIgniter.

Прежде чем публиковать такого рода публикации, я обычно опасаюсь за всякого рода фанатиков, которые неадекватно реагируют на подобные сравнения. Поэтому стараюсь максимально объективно подойти к повествованию. Все выводы в статье сделаны только на основании фактов.

Я сопоставляю эти две платформы друг против друга, но безоговорочного победителя здесь нет. Обе имеют как сильные, так и слабые стороны, а также полные провалы в той или иной опции, которая для вас может оказаться необходимой.
Читать дальше →
Total votes 30: ↑22 and ↓8+14
Comments84

Обсуждаем платформы… индивидуальный подход

Reading time3 min
Views957
Публикую здесь один из комментариев к моей записи «CodeIgniter vs. CakePHP». Может получиться интересная беседа. Да и человеку нужно помочь...

Нужен совет специалистов.
О себе. Я менеджер — разработчик — бизнес аналитик, не знаю, кто больше, но точно не в сторону программиста…

Знаю meta-CMS DJEM (к сожалению, платная и дорогая, 22 тыс. рублей+ за лицензию) и CMF ModX (к сожалению, там не всё так круто, как нам хочется). Хочу изучить ещё 1 CMF, выбор между Symfony, Django и CodeIgniter. CakePHP почему-то не нравится. Не хочу, не буду, уберите — это на подсознательном уровне, наверное. :)
Читать дальше →
Total votes 1: ↑0 and ↓1-1
Comments1

CakePHP: Добавляем «каменты» в блог.

Reading time4 min
Views2K
<p />Итак, мы решили начать программировать «по понятиям» и наконец разобраться с каким-нибудь фреймворком.
<p />Перед нами встаёт мучительный выбор, какой же фреймворк для этого использовать. Для этого можно найти кучу статей, обзоров, сравнительных анализов скорости, производительности, удобства использования и установки, а можно просто набрать в гугле «php framework» и кликнуть
Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments20