Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Голосование

    Какую CMS Вы предпочитаете

    AtomX
    Fapos CMS
    Drunya CMS
Последние комментарии
Топ пользователей
Drunya
Репутация: 110
Сообщений: 3527
Сашка_из_Шебекино
Репутация: 87
Сообщений: 1803
boriska
Репутация: 65
Сообщений: 846
ARMI
Репутация: 46
Сообщений: 1858
BAH0
Репутация: 26
Сообщений: 544
Главная » Статьи » WEB разработка
Материалов в категории:62
1 2 3 4 ... >>
Признаться, по правде, я думал, что в PHP 5.4 просто по латают дырки и добавят пару функций. Ну конечно же оптимизируют объектную часть, так как PHP превращается из шаблонизатора в настоящий язык программирования и без ООП ну никак. Но недавно узнал о новой языковой конструкции, которая меня просто поразила.

Это напомнило мне, чем то goto, но все же это не совсем оно. И я даже уже придумал кучу примеров где такая конструкция может быть весьма полезна.

На данный момент, даже в Fapos есть места, где было бы очень правильно использовать данную возможность.

Представляю вам trait.
Сразу пример из документации:
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
<?php trait ezcReflectionReturnInfo {
    function 
getReturnType() { /*1*/ }
    function 
getReturnDescription() { /*2*/ }
}

class 
ezcReflectionMethod extends ReflectionMethod {
    use 
ezcReflectionReturnInfo;
    
/* ... */
}

class 
ezcReflectionFunction extends ReflectionFunction {
    use 
ezcReflectionReturnInfo;?>
Автор: Drunya Раздел: PHP Добавлено: 20 Дек 2011
С тех самых пор, как я начал свой путь в программирование, мне все и вся твердили о том, что в PHP совершенно не стоит думать о потреблении оперативной памяти сервера. Мол PHP сам с этим справляется на Ура. Но так ли оно на практике? Я решил провести серию небольших эксперементов, в основном, для тестирования Fapos CMS, но результаты оказались интересными. По крайней мере, мне так кажется. И я решил опубликовать их, хотя бы как напоминание самому себе. Ну и, за одно, может будет кому то полезно.

Для дальнейшего тестирования нам понадобятся отладочные функции, которые собственно и будут показывать разницу в памяти, между запуском приложения и нужной нам точки в коде.
 1 
 2 
 3 
 4 
 5 
 6 
<?php function memoryUsage($base_memory_usage) {
    
printf("Bytes diff: %s<br />\n"getSimpleFileSize(memory_get_usage() - $base_memory_usage));
}
function 
someBigValue() {
    return 
str_repeat('SOME BIG STRING'1024);
}
?>


А теперь, вот так - сразу, небольшой тест
 1 
 2 
<?php echo 'Start';
memoryUsage($?>
Автор: Drunya Раздел: PHP Добавлено: 18 Дек 2011
Часто бывает так, что нам необходимо иметь что-то типа супер глобальной переменной, которую мы могли бы использовать в любом месте нашего приложения. Не правда ли, удобно? Кто-то использует для этих целей супер глобальные массивы PHP, но это совсем не профессионально и лучше, если об этом никто не узнает.

Сейчас я хочу рассказать об одном из предопределенных интерфейсов PHP - ArrayAccess, который позволяет работать с объектами как с массивами, что очень удобно, а в связке с паттерном Singletone, мы получаем нечто вроде суперглобального массива для хранения чего угодно в нашем приложении.

Что такое интерфейс? Это нечто вроде указания, какие методы должны обязательно присутствовать в классе, который связан с интерфейсом. На пример интерфейс ArrayAccess обязывает нас иметь в своем классе четыре метода
 1 
 2 
 3 
 4 
<?php /* Methods */
abstract public boolean offsetExists mixed $offset )
abstract public 
mixed offsetGet mixed $offset )
abstract public 
void offsetSet mixed $offset mixed $?>
Автор: Drunya Раздел: PHP Добавлено: 17 Дек 2011
Единицы длины бывают двух категорий: абсолюные и относительные. К абсолютным относятся:

* дюймы (in)
* сантиметры (cm)
* миллиметры (mm)
* пункты (pt)
* пики (pc)


В терминах спецификации css 1pt = 1/72in, а 1pc = 12pt.
В свойстве font-size задание отрицательного значения в единицах длины, например -25cm, недопустимо.
Почему абсолютные? Потому что за ними в физическом мире стоит реальная величина, тоесть эталоны.
С такими единицами работает устройство вывода, которое имеет реальный физический размер, например: при печати будем использовать такие единицы.
А вот для мониторов эти единицы не имеют никакого значения, есть некая условность, но это действительно только лишь условность.
К относительным единицам относятся:

* em (кегельная)
* x-height (ex)
* px (пикселы)


Проценты ( % ) — всегда величина, о которой стоит говорить отдельно. Она настолько важная, что W3C вынес ее в отдельную колонку. Тоесть % можно писать не у всех правил, а только
Автор: Drunya Раздел: HTML & CSS Добавлено: 16 Ноя 2011
Никак не можете добиться нормальной популярности своего сайта среди пользователей? На Вашем сайте маленькая посещаемость, и Вы никак не можете увеличить её? В данной статье описано несколько способов для увеличения популярности сайта, и соответственно его посещаемости.
Автор: LIFE-STALKER Раздел: Дела SEOшные Добавлено: 3 Ноя 2011
Думаю все часто сталкиваются с ошибками на сайтах. Как правило, это ошибка 404 или 500. Так вот я хотел бы показать простой способ, как сделать эти сообщения более красивыми и дружественными.

Делать будем это при помощи .htaccess - конфигурационного файла Apach.

Самый простой пример это просто создание определенного текстового сообщения.
Code:
#Error pages
ErrorDocument 500 "server is temporarily not available. <br /> Сервер временно не доступен."
ErrorDocument 408 "server is temporarily not available. <br /> Возможно сервер перегружен, попробуйте еще раз или зайдите поже."

Таким образом мы можем сами решать какой текст показать пользователю, при возникновении ошибок. Как вы могли заметить, для каждой ошибки можно определить свой текст.

Но просто изменить текст не всегда означает "красиво". И по этому я расскажу, как выдавать стилизованные сообщения об ошибках. Делается это так:
Code:
ErrorDocument 404 /error404.php
ErrorDocument 402 /error402.php
ErrorDocument
Автор: Drunya Раздел: Apache и серверное ПО Добавлено: 20 Окт 2011
В этой статье я приведу описание кодов HTTP ошибок. Порой, по одному только коду, можно понять, что именно "сломалось".


1xx: Informational (Информационные)
100 Continue - Продолжать
101 Switching Protocols - Переключение протоколов
102 Processing - Идёт обработка

2xx: Success (Успешно)
200 OK - Хорошо
201 Created - Создано
202 Accepted - Принято
203 Non-Authoritative Information - Информация не авторитетна
204 No Content - Нет содержимого
205 Reset Content - Сбросить содержимое
206 Partial Content - Частичное содержимое
207 Multi-Status - Многостатусный
226 IM Used - IM использовано

3xx: Redirection (Перенаправление)
300 Multiple Choices - Множество выборов
301 Moved Permanen
Автор: Drunya Раздел: Apache и серверное ПО Добавлено: 13 Окт 2011
В наше время сделать сайт может каждый, у кого достаточно желания. Для этого есть целое море инструментов, как платных, так и бесплатных CMS, фреймворков и так далее. Я встречал даже студии, которые делали сайты за даром или за бесценок, в обмен на какую то мелочную услугу.

И в это время актуальным становится вопрос не о создании сайта, а о его продвижении. Пиар, SEO, раскрутка, продвижение, реклама, оптимизация - как не назови, а это сейчас самое главное. Это важнее юзабилити сайта или его дизайна. Это важнее всего. Я лично встречал откровенные говносайты, но с достойным пиаром, они в топе поисковых систем.

Хорошая раскрутка сейчас стоит уйму денег и бесплатно, в отличии от самих сайтов, ее никто не делает. Если вы твердо решили продвинуть свой ресурс в сети, то перед вами стоит выбор: платить и надеяться на то, что люди, которым вы платите, знают свое дело или попытаться раскрутить сайт самому. Как я и говорил раньше, раскрутка сайтов дело дорогостоящее и долгое.

Но всегда
Автор: Drunya Раздел: Дела SEOшные Добавлено: 30 Сен 2011
Эта короткая заметка о том как установить себе локальный сервер "Денвер" и поставить на него пакет расширения с дополнительными модулями, например cURL. Часто возникает ситуация, когда пакет расширений ни в какую не ставится и приходится танцевать с бубном. Постараюсь рассказать как бесплатно скачать денвер и установить на него пакет расширения.

Для начала качаем сам Денвер с официального сайта денвера - скачать.

Устанавливаем его. Там все элементарно. Жмем всегда ентер и в конце, когда перед нами стает выбор "1" или "2" выбираем "1".(мое мнение, что так лучше)

Далее скачиваем пакет расширения - скачать.

И тут, ВНИМАНИЕ! Пакет не становится и ругается на DLL-ку. Но это случается тогда, когда денвер запущен. Останавливаем денвер и производим установку. Все еще проще, чем при инсталяции самого денвера.

Далее идем по адресу usr/local/php5/php.ini там где установлен денвер. Открываем
Автор: Drunya Раздел: Общие терки Добавлено: 27 Сен 2011
Sortable - это плагин к JQuery позволяющий сортировать элементы в режиме реального времени, просто перетягивая их мышкой. Данный плагин имеет богатый функционал и я решил сделать подробный ман по его настройке и использованию, так как сам недавно столкнулся с ним и осознал всю его полезность.

Для начала посетим страницу настраиваемой закачки на сайте jQuery UI, чтобы получить необходимые нам файлы. Щелкаем на ссылке Deselect all component, чтобы не закачивать лишнее, а затем выбираем только то, что нам потребуется – отмечаем чекбокс Sortable и видим, что вместе с ним отметились чекбоксы UI Core и Draggable. Работа плагина Sortable зависит от них, поэтому они необходимы.
Кроме этого, справа есть выпадающий список, где можно выбрать понравившуюся тему оформления. Если все готово, кликаем кнопку Download и получаем архив.

Сначала в разделе HEAD подключаем несколько файлов, которые есть в архиве:
[js]
<link type="text/css" href="css/sunny/jq
Автор: Drunya Раздел: JavaScript Добавлено: 20 Июл 2011
1 2 3 4 ... >>
Сейчас online: 5. Зарегистрированных: 0. Гостей: 5.
-->