Рубрика «php» - 247

Последнее время PHP гнобят все, кому не лень, даже довольно-таки разумные люди. Когда Jeff Atwood создал свой очередной пост, направленный против PHP, это заставило меня задуматься о хороших сторонах этого языка.

Самая главная проблема всех этих статей в том, что люди, которые их пишут, застряли в старых временах PHP.
Либо это их не волнует, либо они не хотят признавать, но PHP эволюционирует очень быстрыми темпами, и как язык, и как сообщество.
Более того, PHP развивается гораздо быстрее, чем какой бы то ни было другой язык или платформа. Конечно, так было не всегда, но последние 5 лет были воистину потрясающими для PHP…

Читать полностью »

Делаю полностью статичный сайт. На самом деле, php выполняет роль бэкенда: если html файла нет, то сгенерировать его и положить в кэш, а далее nginx отдает html файл из кэша сразу, не трогая php вообще.

Сайт должен получиться огромным. Покрайней мере, я сразу стараюсь делать из расчета на высокую нагрузку. И на данный момент, когда php выполняется лишь единожды для генерации страницы, теперь самое узкое место — это отдача уже готовых статичных html файлов.

Следует знать, что при обращении к файлу он помещается в кэш в оперативной памяти ядром системы, и поэтому, как многие думают, заранее хранить статику в каком-нибудь tmpfs нет смысла, совсем. memcached же именно это и делает, и по какой-то причине все его нахваливают, и особенно любят использовать для кэширования html страниц.

Я убедился в обратном и хочу поделиться с вами, что хранить кэш html страниц в memcached не стоит, и какая есть ему лучшая альтернатива.Читать полностью »

Сейчас я делаю свой небольшой сайт и у меня возникла вот такая идея. В моей базе данных хранятся такие пользовательские данные как логин, пароль и код уровня доступа (1 — администратор, 2 — модератор, 3 — обычный пользователь). Если кто-то получит доступ к моей таблице и изменит код доступа на «1» то он автоматически станет админом. Это не хорошо.

Поэтому я решил ввести новую запись — ключ. Ключ создаётся по такой схеме md5(Соль + Пароль(не хэш) + Ранг). Зачем нужна Соль? Чтобы скрыть способ шифрования — иначе злоумышленник может сам сделать свой хэш, а так может только мой скрипт. При каждом логине пользователя я сверяю два ключа — тот который создан по введеному паролю и тот который хранится в БД. Если ключи не совпадают (sql-инъекцией злоумышленник изменил себе ранг) скрипт не даёт авторизоваться, хотя логин и пароль введены правильно. Можно добавить в ключ другие важные данные — е-майл, номер телефона и т.п. Читать полностью »

в 18:12, , рубрики: html, php, код, метки: , , ,

Думаю, что все мы любим чистый и красивый код. Но разве это красиво, если в обычном HTML шаблоне открываются и закрываются PHP блоки, это же HTML шаблон, зачем там еще что-то? Но ведь надо как-то связывать серверную часть и то, как она преподносится пользователю. Для этого я решил написать небольшой скрипт, который поможет справиться с этой проблемой, оставив красоту в коде. Подробности под хабракатом.
Читать полностью »

Думаю, что все мы любим чистый и красивый код. Но разве это красиво, если в обычном HTML шаблоне открываются и закрываются PHP блоки, это же HTML шаблон, зачем там еще что-то? Но ведь надо как-то связывать серверную часть и то, как она преподносится пользователю. Для этого я решил написать небольшой скрипт, который поможет справиться с этой проблемой, оставив красоту в коде. Подробности под хабракатом.
Читать полностью »

Документация по API на сайте flickr.com устарела. Уже давно появилась возможность авторизироваться через oAuth 2.0, но на сайте нет ни нормального описание, ни примеров работы с API после авторизации.

Авторизация на Flickr происходит в три этапа:

1. Получение oauth_token и oauth_token_secret. На первом шаге oauth_token это request_token.
2. Авторизация приложения в профиле пользователя.
3. Получения oauth_token и oauth_token_secret. На третьем шаге oauth_token это access_token.
Читать полностью »

Система размещения файлов (File Allocation System) создана мною для организации файлообмена. Имеет интуитивный интерфейс (RU/EN). Проста в настройке, содержит минимальный объем кода. Требует для своей работы веб-сервер с поддержкой PHP.
Читать полностью »

Сделал я недавно некий тест, который выдал любопытные данные. Коими хочу поделиться, дабы помочь многим прояснит спорные ситуации.
Везде только и пишут, что насколько быстры массивы, насколько медлителен Active Record… Но когда видишь конкретные цифры гораздо легче понимать что на сколько лучше другого.

Используемые материалы:

— обычный ноутбук: Intel core 2 duo 2.13GHz, RAM 6 GB
— php 5.3
— apache 2.2
— framework Yii 1.1.10
— Active Record

Читать полностью »

Данный пост является переводом не статьи, как принято, а доклада+презентации, поэтому текст поста достаточно вольный.

Думаю, всем хорошо известно и очевидно, что PHP — один из самых популярных языков программирования, на котором написано множество веб-проектов, начиная с персональных homepage-страниц и заканчивая мастодонтами типа Facebook, Vimeo, WordPress и даже YouPorn :)

PHP появился в 1995 году, при этом полноценная поддержка ООП была реализована только в PHP5, который вышел в 2005 году. За это время было написано большое количество кода, как хорошего, так и плохого, а точнее сказать сильно устаревшего и тяжело сопровождаемого.

Многие проекты, как и экосистема PHP в целом, к настоящему моменту стали представлять подобие оживленного городского квартала.

Как реанимировать ваш PHP проект с помощью Symfony2 компонентовЧитать полностью »

Фреймворк для автоматического тестирования веб-приложений на PHP — Codeception живет и развивается. Но в этот раз вместо скупой порции новостей я бы хотел представить вам первый скринкаст в котором показаны азы работы с Codeception. Если вы только читали про Codeception, то вам обязательно стоит взглянуть на него в действии. Ну а если не читали, но у вас есть веб-сайт, который бы вы хотели протестировать — тоже взгляните.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js