Feed Rss



Archive for the ‘PHP’ category

Фев 16 2010

ZendFramework vs Symfony

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

Если в ZF все логично: мы в контроллере наполняем экземпляр представления переменными:

class SomeController extends Zend_Controller_Action {
[...]

tag: , , , ,


Янв 22 2010

Кеширование участков представления

category: PHP author: Алексей Токарь

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

Код, отвечающий за кеширование участка представления в Zend Framework’е, выглядит приблизительно так:

[ some html skipped ]
 
< ?php
$id = "some_cache_id";
// if it is a cache miss, output buffering is triggered
if ( !( $cache->start( $id ) ) ) { [...]

tag: , ,


Ноя 20 2009

Переходим с PHP на Java. Шаг первый. Контейнер сервлетов.

Помню как я начинал осваивать PHP… Это была где-то середина 2004 года, вроде июль месяц и основной проблемой на тот момент стал не столько синтаксис, не столько конфигурация PHP, сколько конфигурация и развертывание окружения – веб сервера Apache.
Время шло, апач прогрессировал и разворачивать его становилось все проще и проще. Особо неинтересующиеся в устройстве окружения вообще [...]

tag: , , , , , ,


Ноя 09 2009

Hibernate vs Doctrine

На выходных дошли руки, наконец-то, опробовать производительность другого аспекта миграции с PHP на Java. Мне нужен был ORM, да не просто ОРМ, а ОРМИЩЕ! О hibernate я слышал давно и все отзывы хорошие, да и к тому же Spring прекрасно с ним дружит. На этом и остановился – ман по hibernate + попытка ввинтить его [...]

tag: , , , , ,


Окт 30 2009

Spring vs Zend. Параметры контроллеров

Мне все больше и больше нравится использовать Spring. Возможно вскоре напишу более обширный сравнительный обзор между Spring и Zend Framework, а пока что просто пример.
Представьте что вы создаете серьезное отказоустойчивое и защищенное приложение. Например биллинг. Как должен быть реализован контроллер для вывода какого-либо объекта по его id?

tag: , , , , ,


Окт 29 2009

Сухие цифры

$ ab -c 10 -t 60 http://site.local/

Простое приложение на ZendMVC (PHP):

This is ApacheBench, Version 2.3 < $Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
 
Benchmarking zt.local (be patient)
Finished 4557 requests
 
 
Server Software: Apache/2.2.11
Server Hostname: zt.local
Server [...]

tag: , , , , ,


Сен 16 2009

dynamic Java

Как вы знаете, основой моего желания соскочить с Пыхапы на Джаву была строгая типизация в последней. Но как оказалось в аноансе J7, Джава будет поддерживать динамическую типизацию. Особенно это вкусно смотрится с новостями о поддержке строгой типизации в Пыхе с версии 6.

Даж и не знаю на что переходить-то…

tag: , , ,


Сен 03 2009

Doctrine, к тебе PHP5.3 пришел!

Все вы наверное знаете, что Doctrine была написана под впечатлением от Hibernate. Особенно разработчикам понравился HQL, который стал прототипом для DQL – объектного языка запросов. Но из-за многих ограничений в РНР, ОРМ получилась с костылями. Так, например, нарушался принцип инкапсуляции, ведь все свойства объектов всегда получаются публичными, но теперь, когда в РНР5.3 рефлексия стала более [...]

tag: , , , ,


Авг 23 2009

Приватные свойства и методы

category: PHP author: Алексей Токарь

Как-то упустил из своего курса освоения PHP тот факт, что с приватными свойствами и методами его классы ведут себя подобно С++.
Так например имея код:
<?php
class A {
    private $b;

    public function __construct( $b ) {
        $this->b = $b;
    }

    public function isEqual( A $a ) {
        var_dump( $a->b );
        var_dump( $a->b() );
    }

    private function b() {
        return ‘Private method called’;
    }
}

$a1 = new A( 1 );
$a2 [...]

tag: , ,