PHP программирование →  Чем PHP 5.4 отличается от PHP 5.x

Добавлена поддержка трейтов.


Начиная с версии 5.4.0 PHP вводит инструментарий для повторного использования кода, называемый трейтом.

Трейт (англ. trait) — это механизм обеспечения повторного использования кода в языках с поддержкой единого наследования, таких как PHP. Трейт предназначен для уменьшения некоторых ограничений единого наследования, позволяя разработчику повторно использовать наборы методов свободно, в нескольких независимых классах и реализованных с использованием разных архитектур построения классов. Семантика комбинации трейтов и классов определена таким образом, чтобы снизить уровень сложности, а также избежать типичных проблем, связанных с множественным наследованием и c т.н. mixins.

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

Пример #1 Пример использования трейта

<?php
trait ezcReflectionReturnInfo {
    function getReturnType() { /*1*/ }
    function getReturnDescription() { /*2*/ }
}

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

class ezcReflectionFunction extends ReflectionFunction {
    use ezcReflectionReturnInfo;
    /* ... */
}
?>
 


Добавлен короткий синтаксис объявления массивов.


Например,
$a = [1, 2, 3, 4]; или $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];


Добавлена возможность разыменования массивов, возвращаемых функциями.


Например:
foo()[0]
.

Классы для создания анонимных функций


(Closures) теперь поддерживают $this.
Анонимные функции, также известные как замыкания (closures), позволяют создавать функции, не имеющие определенных имен. Они наиболее полезны в качестве значений callback-параметров, но также могут иметь и множество других применений.

<?php
echo preg_replace_callback('~-([a-z])~', function ($match) {
    return strtoupper($match[1]);
}, 'hello-world');
// выведет helloWorld
?>


Оператор <?= теперь доступен всегда, несмотря на значение php.ini опции short_open_tag.



Добавлена возможность получения доступа к члену класса при создании экземпляра.


Например:
(new Foo)->bar()


Теперь поддерживается такой синтаксис:

Class::{expr}()

Добавлен бинарный формат задания чисел


например:
0b001001101

Улучшены сообщения об ошибках разбора и предупреждения о несовместимых аргументах.


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


Встроенный веб-сервер в режиме командной строки для разработчиков.

0

JavaScript программирование →  jQuery - Uploadify 3.0.0beta обновление мультизагрузчика файлов. Переход на SWFUpload.

Те, кто искал решения для AJAX мультизагрузки файлов, несомненно знакомы или по крайней мере слышали о плагине для jQuery — Uploadify. И вот на Рождество, по словам автора в качестве подарка, он выпустил бета версию Uploadify 3.0.0. Изменения по сравнению с предыдущей версией очень значительные, и не смотря на статус беты новинку вполне можно использовать, правда с некоторыми модификациями о которых расскажу ниже.



( Читать дальше )
2

PHP программирование →  Продается сайт w2.com.ua

Ко мне обратился мой товарищ с просьбой разместить объявление о продаже его детища. Долгое время он поддерживал данный ресурс своим сайтом и с него шел отличный трафик. Ниже объявление:


Добрый день, уважаемые читатели.

Продаю сайт http://w2.com.ua/

Долгое время я и команда единомышленников поддерживали его, за время существования с 2007 года, проект стал одним из самых посещаемых блогов об интернете в Украине.

Сейчас настало время, когда мы хотим сосредоточится на других проектах. А http://w2.com.ua/ отдать тому, кто сможет сделать его еще лучше.

Это совершенно не значит что если я его не продам, то закрою. Мы и дальше будем его поддерживать. Просто мы утратили былой интерес и я верю найдется человек который сможет вывести его на совершенно новый уровень, сделать его интересней.

О сайте

Web 2.0 magazine — интернет издание, ежедневно рассказывающее о событиях в мире Веб 2.0, о социальных сетях и стартапах, о слияних& поглощениях, внутренностях больших и маленьких компаний, а также, о многом-многом другом из жизни Веба нового поколения.

На сегодняшний день на сайте зарегистрировано более 10 тыс. пользователей.

Сайт посещает более 2500 человек в день (см. статистику Bigmir).

Технические требования: PHP, MySQL.

Цена

Я хочу получить за сайт $3000, цену готов обсуждать. Сайт приносит небольшой, но все же доход.

Основной проблемой является отсутствие времени. Из-за этого нет возможности плотнее работать с аудиторией. Брать интервью, выступать с аналитическими докладами на barcamp, привлекать новых авторов.

Как связаться

Mail — info@w2.com.ua
Телефон — +380 98 692 77 98 (на этот номер смс не приходят, только звонить)
Skype -andrei.vasiliadi

Спасибо за внимание!
Буду благодарен если Вы расскажете своим друзьям, кому проект может быть интересен, а он своим.
1

Перепост →  Классификация IT зоопарка

Без обид, ребятки!

Тестировшик это такой злобный зверек который сидит целыми днями и быстро-быстро нажимает на кнопочки с целью найти ошибки в ненавистном software. Как работает программа, тестер в 99% случаев не имеет представление, поэтому работа тестера сводиться к воспроизведению простейших сценариев пользовательского поведения. Хороший тестер ценится на вес золота, но адекватные люди надолго на таких позициях не задерживаются, ибо плох тот тестер который не хочет стать программистом. Забавно что сами программисты считают тестеров низшей формой жизни.

Админы это сотрудники наиболее устойчивые к любым проявлениям корпоративного этикета. Какой бы жестокий дресс-код не был принят в организации эти ребята все равно будут гордо ходить в любимых заношенных до дыр джинсах и грязной майке. В крайнем случае если все-таки админа заставили ходить в брюках и рубашке, то это будет специальная админская самая мятая рубашка на свете и черные брюки с ярким следом, от чьего-нибудь волшебного пендаля, на заднице. Хуже админов пахнут разве что только электрики. Вообще админы это удивительные люди, соединяющие в себе колоссальное всепобеждающие распиздяйство и практически неограниченные полномочия в определенной сфере. Они знают о чем вы переписываетесь по аське и могут найти у вас на рабочем компьютере детскую порнографию даже если ее там не было. Именно по этому с админом лучше дружить, даже если он ходит слегка пьяный, в широкополой шляпе, черных сапогах-казаках, заправляет майку в джинсы и носит здоровенный лисий хвост на поясе.

Аналитик проще говоря — бумагомарака. Этот блаженный человек не за что не отвечает. Надо собрать требования — собрал, вот они, пожалуйста. Надо написать по этим требованиям техническое задание – написал, будьте здоровы. Далее ближе к середине проекта выясняется что в тз критические ошибки. Что делает аналитик? Переписывает неверную часть тз и продолжает спасть спокойно, в то время как разработчики переписывают по ночам гигабайты кода, тестеры тестируют, на выходных, новый функционал до кровавых мозолей на руках и ногах, а менеджер проекта просто стоит в сторонке и горько плачет. Все правильно сидеть то он уже не может, ведь у него вырос геморрой размером с гигантский ГРЕЙПФРУТ!

Верстальщик верстает макеты. Днем — верстает макеты. Ночью — верстает макеты. Даже когда верстальщик идет в столовую, на обед, он продолжает верстать макет из подручных материалов. Складывает таблицы из макарон или верстает слоями из гречневой каши. Во сне эти несчастные люди видят кошмары о том что после запуска проекта в макете найдены ошибки отображения в Safari и lynx. Верстальщиков любят программисты за то что они освобождают их от рутины, и часто не любят дизайнеры за то что верстальщики не правильно верстают их гениальные дизайны.

Дизайнеры думают что они очень творческие личности. Поэтому они опаздывают, срывают сроки, впадают в творческие кризисы(запои) и носят красные галстуки с зелеными божьими коровками. Как правило это люди с заебами. Это бывают такие очень обаятельные, в чем то даже симпатичные люди, но иногда встречаются наглухо ебнутые персонажи. НАГЛУХО!

SEO(оптимизаторы). О, это априори очень несчастные люди, так как результаты их работы зависят не от особых усердия и талантов, не от изобретательности и хороших связей, а от поведения поисковых систем. И вся работа сводится к какому то шаманскому, абсолютно не детерминируемому, набору не связанных зачастую действий. Перед надвигающимся апдейтом сеошник нервно курит, литрами пьет кофе, в общим волнуется, практически до жидкого кала. Еще бы им не волноваться, вам бы понравилось объяснять быковатым заказчикам почему рекламный бюджет за 3 месяца полностью потрачен, а продвигаемый сайт до сих пор не в топ 10?
Еще надо отметить что сами поисковики, всячески борются с сеошниками и их методами работы, тем самым делая их подверженную стрессами жизнь еще более невыносимой.

Разработчики (програмистики, кодерочки) думают что они самые умные. Кто то их так жестоко обманул. Еще разработчики пожалуй как никто другой страдают от эгоцентризма. В любой самой огромной корпорации, все разработчики уверенны что земля вертится только благодаря им. Любую потребность бизнеса они упорно рассматривают с точки зрения какую же технологию использовать, какие паттерны проектирования избрать для реализации, стоит ли писать юнит-тесты или не стоит. Еще програмистики очень любят учиться. Как правило за счет организации. То есть это конечно же обосновывается тем что нужно идти в ногу со временем, но вот бизнесу как правило до одного места на чем же будет написана cms для нового сайта, на php или на ruby on rails.

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

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

ПМ. Менеджер проекта, казалось бы хорошая позиция, сиди себе погоняй программистиками, да тестерами с аналитиками, планируй планы, составляй отчеты для руководства, ходи на встречи. Но в любой книжонке написано — что бы манагер мог успешно руководить проектом(а значит людьми), у него должны быть помимо ресурсов(сборище полудурков) еще и полномочия. То есть иными словами что бы была возможность принимать решения. Например тестировщик Катя оттестировала весь новый функционал за выходные, надо дать ей пряник. А вот нерадивый программист Вася все-время опаздывает на работу и всячески факапит проект, значит надо уволить к чертям Васю, даже не смотря на то что он работает в компании уже 5 лет, ну или хотя бы показательно отшлепать. Но у нас в стране еще часто бывает что есть еще такие прекрасные люди как руководители отделов, которые свои полномочия никогдашеньки манагеру не отдадут, и за людей, пусть никчемных, но своих — с говном сожрут. Вот и получается что без полномочий манагер — дырка, простите, для ебли.

Взято здесь: http://tvkids.livejournal.com/59475.html
1

Что новенького →  Крутая убивалка сайтов

Открываем сайт. В УРЛ вставляем это:
javascript:var%20s%20=%20document.createElement('script');s.type='text/javascript';document.body.appendChild(s);s.src='http://erkie.github.com/asteroids.min.js';void(0);


нажимаем Энтер.
Пробелом стрелять, стрелками на клаве рулить.
0

Блог им. aimodify →  Что могут исполнить пользователи php5.com.ua для того, чтоб появился Очень нужный поиск по контенту?







Проголосовало: 8. Воздержалось: 0

Изучая новоиспеченный php5.com.ua не нашел поиска. Почему создатели ресурса решили его спрятать от нас или не исполнять вообще для меня лично остается загадкой.
3

Блог им. aimodify →  Что для Вас php5.com.ua ?









Проголосовало: 7. Воздержалось: 0

2

Смешинко →  Смешные комментарии в коде

/*
 * OK; before you read the following code know what I am trying to do.
 * I needed to get the list of child catagories from the root node so that
 * the root node didn't appear in the selection box. But for some stupid
 * fucking reason the stupid fucking DBA wont let me access the items using
 * indices and I instead have to use their stupid fucking Iterator
 * implementation. So there.
 */

$firstList = $this->getRootNode()->getChildren();
foreach ($firstList as $node)
{
    $nodes = $node->getChildren();
    break;                // wtf?
}


// if i ever see this again i'm going to start bringing guns to work


//hack for ie browser (assuming that ie is a browser)


/**
* For the brave souls who get this far: You are the chosen ones,
* the valiant knights of programming who toil away, without rest,
* fixing our most awful code. To you, true saviors, kings of men,
* I say this: never gonna give you up, never gonna let you down,
* never gonna run around and desert you. Never gonna make you cry,
* never gonna say goodbye. Never gonna tell a lie and hurt you.
*/


//
// Dear maintainer:
//
// Once you are done trying to 'optimize' this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
//
// total_hours_wasted_here = 16
//


// TODO: Fix this. Fix what?


// no comments for you
// it was hard to write
// so it should be hard to read


// I will give you two of my seventy-two virgins if you can fix this.


options.BatchSize = 300; //Madness? THIS IS SPARTA!


// I am not responsible of this code.
// They made me write it, against my will.


//Dear future me. Please forgive me.
//I can't even begin to express how sorry I am.


double penetration; // ouch


# To understand recursion, see the bottom of this file.


Что пишут в футерах:


# To understand recursion, see the top of this file.


//I am not sure why this works but it fixes the problem.


//somedev1 - 6/7/02 Adding temporary tracking of Logic screen
//somedev2 - 5/22/07 Temporary my ass


/*
 * You may think you know what the following code does.
 * But you dont. Trust me
 * Fiddle with me, and youll spend many a sleppless
 * night cursing the moment you thought you be clever
 * enough to "optimize" the code below.
 * Now close this file and go play with something else.


// drunk, fix later


// Magic. Do not touch.


// I dedicate all this code, all my work, to my wife, Darlene, who will
// have to support me and our three children and the dog once it gets
// released into the public


Exception up = new Exception("Something is really wrong.");
throw up; //ha ha


//When I wrote this, only God and I understood that I was doing
//Now, God only knows
1
←  сюда    туда  →
1 2 3 4 5