Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

Top 25 Шаблонных движков

Время на прочтение3 мин
Количество просмотров10K
(по версии WhenPenguinsAttack.Com)

После длительного поиска хорошего шаблонного движка на PHP, Justin Silverton составил следующий список с краткими описаниями.

Читать дальше →
Всего голосов 14: ↑8 и ↓6+2
Комментарии31

Создание простой MVC-системы на PHP 5

Время на прочтение18 мин
Количество просмотров208K

Предисловие


В этом руководстве Вы узнаете, как построить простую систему по архитектуре MVC (Model-View-Controller, Модель-Отображение-Контроллер) на PHP 5.1 с использованием возможностей библиотеки SPL (Standard PHP Library, Стандартная Библиотека PHP).

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии116

Перевод: Шаблонизаторы в PHP — подведение итогов

Время на прочтение7 мин
Количество просмотров12K
Перевод итога обсуждений поста в блоге Фабиена (Fabien Potencier) на тему PHP шаблонизаторов и Twig.
Читать дальше →
Всего голосов 36: ↑25 и ↓11+14
Комментарии68

Разбираемся с проблемой мертвого кода и инклудами

Время на прочтение5 мин
Количество просмотров1.8K
В этой статье мы поговорим о некоторых иногда упускаемых разработчиками аспектах, влияющих на общую производительность веб приложения. В частности рассмотрим как влияет на производительность множественные подключения внешних файлов, наличие «мертвого» кода, акселерация путем кешеров опкода и FastCGI для PHP.
Читать дальше →
Всего голосов 80: ↑67 и ↓13+54
Комментарии85

Отвёртка для выражений

Время на прочтение5 мин
Количество просмотров3.3K
Область применения разбора математических выражений представить не сложно — это и всевозможные парсеры SQL-запросов, и обработчики формул, вводимых пользователем (то же построение графиков или фильтры к БД) — вплоть до создания собственных языков (намеренно не пишу слово «программирования», т.к. зачастую это языки описания данных и иже с ними).

Возможно, я не прав, но я не сумел найти на просторах сети более или менее юзабельный парсер выражений для PHP — и, как наверное уже привыкли те, кто периодически читает мои статьи, я отправился реализовывать это дело своими силами, т.е. изобретать велосипед. :^)

Результат моих потуг вы можете обнаружить здесь. В архиве вы найдёте скрипты, необходимые для функционирования библиотеки, и пример её работы (sample.php). Библиотека собрана как standalone.

Но, я полагаю, интересно было бы разобраться, что там к чему.

Читать дальше →
Всего голосов 20: ↑12 и ↓8+4
Комментарии17

PHP closures и передача аргументов по ссылке

Время на прочтение8 мин
Количество просмотров4K
Ради интереса я решил сделать механизм замыканий (closures) на PHP. Я знаю, что в PHP 5.3 такой механизм есть, поэтому подчёркиваю — чисто из академического интереса. И моя любознательность дала (по крайней мере, для меня — кто-то с этим уже мог иметь дело) свои плоды — помимо собственно замыканий я получил интересный метод передачи аргументов.

Читать дальше →
Всего голосов 29: ↑18 и ↓11+7
Комментарии3

Пишем свою реализацию сессий для обработки мертвой сессии перед зачисткой

Время на прочтение3 мин
Количество просмотров5K
Мой первый хабратопик, надеюсь, что не последний.

Представим ситуацию: есть корзина покупок на сайте, при добавлении в корзину мы ставим на товар т.н. lock, исключающий его из списка доступных для покупки товаров. Когда клиент удаляет товар из корзины — lock снимается. Но что делать, если пользователь просто закрыл браузер? В таком случае сессия будет удалена сборщиком мусора, а локи так и останутся.

Когда я столкнулся с такой ситуацией, первое что мне пришло в голову — хранить локи и дату доступа в БД и периодически дергать её кроном. Но костыльность этого решения очевидна. А вот ещё бред, с которым я столкнулся при решении сабжа: для сериализации и десереализации сессий используются функции и формат, отличные от функций serialize и unserialize. Приходится делать велосипеды для ансериализации сессии.

Ближе к телу: как решил проблему я…
Читать дальше →
Всего голосов 56: ↑35 и ↓21+14
Комментарии53

Профилирование PHP-кода

Время на прочтение3 мин
Количество просмотров35K
Профилирование PHP-кода

Рано или поздно каждый из нас сталкивается с унаследованным кодом и его оптимизацией. Дебаггер и профилировшик в такой ситуации — лучшие помощники программиста. У тех кто работает с PHP, благодаря Дерику Ретансу (Derick Rethans) есть хороший инструмент — xDebug. Информации касательно xDebug много даже в рунете, поэтому речь в этой статье пойдет не о нем.

Наткнувшись на упоминание о профилировщике для PHP я сразу подумал об xDebug ( о проприетарных инструментах от Zend я давно уже успел позабыть ), но на этот раз ошибся — речь пойдет об XHProf.
XHProf

Этот профилировшик был разработан специально для Facebook, а исходный код его был открыт в марте 2009 года.
Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии20

Интересные возможности языка PHP

Время на прочтение3 мин
Количество просмотров7.7K
В данной статье я хочу рассказать о интересных, но не очень распространенных базовых возможностях языка PHP. Все, что написано далее в том или ином виде присутствует в документации к PHP в разрозненном виде. Автор вполне отдает себе отчет в том, что большинство профессиональных разработчиков все это отлично знает, но новички могут узнать что-то новое.

Содержание статьи имеет мало общего с моей прошлой статьей про использование выражений в PHP. Речь не идет об усложнении кода, скорее наоборот.

Читать дальше →
Всего голосов 155: ↑114 и ↓41+73
Комментарии174

Получаем атрибуты S.M.A.R.T

Время на прочтение5 мин
Количество просмотров13K
S.M.A.R.T это технология оценки состояния жесткого диска, помогающая оценить текущее состояние и предсказать возможные проблемы и выход устройства из строя. Атрибуты S.M.A.R.T условно можно разделить на две группы: параметры, отражающие процесс изнашивания (старения) диска и текущие параметры (например, параметры производительности).

Каждый атрибут имеет идентификатор, тип (критический, показатель производительности, счетчик ошибок, счетчик событий), текущее значение, пороговое значение (если текущее меньше порогового — начинайте искать новый диск), самое низкое, зафиксированное, значение атрибута. Описание каждого атрибута можно посмотреть здесь.

На этом теоретическая часть заканчивается, перейдем к практике. Напишем программу, которая будет считывать и отображать атрибуты S.M.A.R.T. Скачать готовую программу с исходниками можно здесь.
Читать дальше →
Всего голосов 55: ↑45 и ↓10+35
Комментарии43

Разберемся раз и навсегда: AJAX, «кириллические символы», кодировки, prototype.js, jQuery, JsHttpRequest

Время на прочтение5 мин
Количество просмотров167K
AJAX, — это технология. Одной из часто используемых техник этой технологии является
посылка запросов при помощи объекта класса XMLHttpRequest.


Как же посылать и принимать AJAX запросы в нужной нам кодировке, нужно ли использовать однобайтовые кодировки или не обойтись без UTF-8. На все эти вопросы раз и навсегда ответит эта статья.

Читать дальше →
Всего голосов 64: ↑57 и ↓7+50
Комментарии125

Как сократить PPC (оплату-за-клик) на 30% за 20 минут

Время на прочтение3 мин
Количество просмотров856
И снова здравствуйте! Сегодня я хочу поговорить о покупке траффика на ваш портал. Я не обладаю фундаментальными знаниями в области SEO, но позволила себе опубликовать статью на эту тему, потому что она, как мне кажется, могла бы принести пользу людям, особенно директорам- и SEO-специалистам старт-ап проектов. А для директора старт-апа с ограниченным бюджетом эта уловка может оказаться весьма полезной, поскольку позволяет экономить деньги, сохраняя при этом результаты PPC-кампании. Вы можете использовать её самостоятельно, либо передать эту информацию вашему SEO-специалисту (при наличии такового), чтобы он мог успешно применить этот метод. Я ознакомилась с ним в процессе интенсивной работы над моим последним старт-ап проектом (идея, разумеется, не моя, но мне приходилось заниматься ключевой фильтрацией, поэтому я знаю, как она работает).

Эта информация до сих пор считалась маленькой тайной, но поймите меня правильно. В этой уловке нет ничего «супер-пупер-секретного». На самом деле, сам Google рекомендует ей пользоваться. Но дело в том, что никто этого не делает!
Читать дальше →
Всего голосов 86: ↑53 и ↓33+20
Комментарии48

10 способов побороть проблемы в IE6

Время на прочтение3 мин
Количество просмотров2.6K

1. Используйте DOCTYPE


Лучше всегда прописывать доктайп в заголовке каждой html-страницы, причем, строгий режим рекомендуется:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

для XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

от себя добавлю, что недопускайте никаких сторонних символов перед доктайпом. Ни пробелов, ни переносов строки — иначе появятся странные поля у body и html
Читать дальше →
Всего голосов 133: ↑88 и ↓45+43
Комментарии100

Отладка Javascript

Время на прочтение5 мин
Количество просмотров146K
Debug Logo

Многие задают мне один и тот же вопрос:
«Как дебажить этот $%*!%$! JavaScript?».

Так вот, во-первых JavaScript — не $%*!%$! А как я его дебажу — сейчас расскажу.

(Примечание: наверное эта статья больше для новичков. Так что не судите строго)

Читать дальше →
Всего голосов 192: ↑178 и ↓14+164
Комментарии78

Какие вопросы задавать клиентам перед дизайном их сайта?

Время на прочтение3 мин
Количество просмотров28K
Перевод свеженького поста «Questions to ask clients before designing their website» Брайана Хоффа, автора блога «The Design Cubicle».

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

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

Некоторые из нижеприведенных вопросов могут быть применены не только для веб-дизайна, так что я разделил их на группы, чтобы клиенту было понятней.
Читать дальше →
Всего голосов 65: ↑54 и ↓11+43
Комментарии70

Codeigniter — облегчаем себе жизнь (расширяем базовый контроллер)

Время на прочтение7 мин
Количество просмотров12K
На сегодняшний день, практически в любом приложении необходимо работать с несколькими языками и обеспечивать контроль доступа.
Некоторое время назад я у себя в блоге описывал как работать с этими вещами в codeignier, но блог закрыт а вопросы у некоторых остались всё такие-же.
Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии35

Управление проектом на одной странице (таблица из одноименной книги К. А. Кэмбэлла)

Время на прочтение1 мин
Количество просмотров53K
Только дочитал означенную в названии топика книгу. Она предлагает очень интересную и удобную схему для ведения проекта. Фактически, это – несколько усложненная диаграмма Ганта.

Однако я предположил, что таблица уже созданная в Excel будет многим хабравчанам удобна. Сама по себе книга имеет ценностью на 80-90 % в этой схеме. Но, думаю, без первоисточников вполне можно справиться с изучением данной диаграммы, тем более, что на официальном сайте издательства она представлена как:
Читать дальше →
Всего голосов 36: ↑32 и ↓4+28
Комментарии25

MVC на примере CodeIgniter

Время на прочтение3 мин
Количество просмотров11K
На официальном сайте есть видео где рассказывается о создании блога. Там рассказано о применении только представления и контроллера, модель опускается и остается на самостоятельное изучение. Далее попытаюсь рассказать, как использовать полную модель MVC на примере вывода записей в блоге.
Читать дальше →
Всего голосов 6: ↑4 и ↓2+2
Комментарии19

mod_rewrite: Просмотр списка правил только один раз

Время на прочтение1 мин
Количество просмотров6.7K
С mod_rewrite есть одна проблема, об которую набиты уже наверное 15 миллионов шишек: он просматривает список правил снова и снова, пока URL удается хоть как-то изменить.

Очень часто получаеются и бесконечные циклы(например добавление расширения — оно добавляется снова и снова, если специально регэкспом не ограничить), над которыми с непривычки приходится поломать голову. Все надежды на модификатор [L] тщетны — он лишь сразу запускает следующую иттерацию обработки. Да и без бесконечного цикла лишние иттерации скорости работы не добавляют :-)

Хочу поделится достаточно простым и универсальным средством борьбы с такой особенностью, который обнаружил только-что :-)

Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии21

Работа с массивами в bat

Время на прочтение6 мин
Количество просмотров55K
Прочитав пост Свой сапер на своих батниках и пробежавшись по коду, наткнулся на комментарий, что в батниках нет массивов (кстати, в последней версии Сапера, о котором идёт речь в том посте, нет этого комментария). Так вот, если в батнике необходимо использовать некоторый набор значений, то логично объявить такое кол-во переменных, которое требуется и работать с ними. Собственно данный сценарий эту задачу помогает решить проще. Вот несколько примеров:

echo Создание массива А:
call :array new A "'one','two','three','foo','bar'"
echo Получение третьего элемента в result:
call :array get A 3 result
echo %result%
echo Изменение нулевого элемента
call :array set A 0 "первый элемент"

подробнее
Всего голосов 47: ↑39 и ↓8+31
Комментарии32

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность