Пуля — дура. Пых — молодец.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 24 Май, 2012, 11:20:13

Страниц: [1] 2
Печать
Автор Тема: "Предкомпиляция" классов  (Прочитано 503 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Trieg    ↓ 
14 Сентябрь, 2010, 03:18:14
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 6
Сообщений: 41
Сила слова: 14.63

буду краток.
 
Нам захотелось юзать множественное наследование (ну или еще какуюнить хуергу), а этого само собой в пыхе нету.
 
Теоретическое решение проблемы:
1 - меняем логику аутолода
было
PHP

function loadClass($className)
{
    $file = 'Directory/Class/' . str_replace(array('\\', '_'), '/', $className) . '.php';
 
    if(file_exists($file))
    {
        require_once $file;
    }
}
 
стало
PHP

function loadClass($className)
{
    $file = 'Directory/Class/'. str_replace(array('\\', '_'), '/', $className) . '.php';
    $cache= 'Directory/Cache/'. str_replace(array('\\', '_'), '/', $className) . '.php';
   
    if(!file_exists($cache) || filemtime($cache) < filemtime($file))
    {
        $compiler = new PCompiler();
        $compiler->readFile($file)->applyExtension(array('utf8String', 'typeHint', 'classMultiExtends'))->getNewCode();
       
        file_put_content($cache, $compiler);
    }
   
    require_once $cache;
}
 

2 - умираем и реализуем PCompiler и его расширения.
3 - радуемся жизни и добавляем разные плюшки по мере надобности
 
На первый взгляд кажется что это будет удобно. (я просто мечтаю переебенить большинство нативных функций, хотя это наверно самое бесполезное что можно сделать).
 
В общем кто что думает по этому поводу. Есть ли смысл с этим замарачиватся? Вы бы сами стали юзать подобное?
Записан
adw0rd    ↓ 
14 Сентябрь, 2010, 03:27:11 , спустя 8 минут 57 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17623
Сила слова: 1.67

Я думаю это прикольно, только потому что пхп гавно
Где реализацию PCompiler посомтреть?
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Trieg    ↓ 
14 Сентябрь, 2010, 04:57:01 , спустя 1 час 29 минут 50 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 6
Сообщений: 41
Сила слова: 14.63

Мне эта мысля тока седня в голову залетела, так что пощупать пока нечего.
Записан
phpdude    ↓ 
14 Сентябрь, 2010, 08:01:48 , спустя 3 часа 4 минуты 47 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.65

множественное наследование?) зачем оно? :) сборщик пхп кода из других классоц писать имхо пиздец) может лучше отказаться от этой идеи и писать как все? используя немножественное наследование?) ага, пых гавно
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Абырвалг    ↓ 
14 Сентябрь, 2010, 09:58:27 , спустя 1 час 56 минут 39 секунд
НЕ ХУЕТА! ХУЕТА!

PHP Infected, симфоеб, маконенавистник
Группа: Джедаи

Карма: 80
Сообщений: 6096
Сила слова: 1.31

Нам захотелось юзать множественное наследование
наверно вы просто что-то не так делаете
Записан

PHP does the job since 1995
Пожалуйста, не надо делать двойные клики по ссылкам. Это создает избыточную нагрузку на сервер
SpartakuS    ↓ 
14 Сентябрь, 2010, 10:05:29 , спустя 7 минут 2 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 32
Сообщений: 2444
Сила слова: 1.31

И почему это пых говно в контексте этой темы?
Записан


цска ебаное гавно.
mario    ↓ 
14 Сентябрь, 2010, 10:08:31 , спустя 3 минуты 2 секунды
НЕ ХУЕТА! ХУЕТА!

wazzup
Группа: Джедаи

Карма: 67
Сообщений: 6162
Сила слова: 1.09


И почему это пых говно в контексте этой темы?
пых по дефолту говно! )))
Записан

с ув. mario.
Контакты
Trieg    ↓ 
14 Сентябрь, 2010, 11:07:30 , спустя 58 минут 59 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 6
Сообщений: 41
Сила слова: 14.63

на множественное наследование почти срать так как оно уже есть "из коробки" (вроде как..)
 
чисто в прикол
 
PHP

    public function :array:string parseTemplate(:localFile $file) cache {$file.MTime}
    {
        if(self.isTpl($file))
        {
            :return array(this.getPattern($file), this.getBlock($file));
        }
        else
        {
            :return parent.newTemplate($file);
        }
    }
 

на выходе что то типа
 
PHP

    public function parseTemplate($file)
    {
        use Framework\Cache\SqLite3\Method as Cache;
        
        $file = realpath($file);
        if(!is_file($file) || !is_readable($file))
        {
            throw new \InvalidArgumentException('axtyng');
        }
        
        if($cache = Cache::get(func_get_args(), array(Cache::CHECK_MTIME, $file))
        {
            return $cache;
        }
        
        $__checkFun = function($var)
        {
            if(!(is_string($var) || is_array($var)))
            {
                throw new \LogicException('Only array and string');
            }
            return $var;
        };
        
        return Cache::add(
            func_get_args(),
            $__checkFun((self::isTpl($file)) ? array($this->getPattern($file), $this->getBlock($file)) : parent::newTemplate($file))
        );
    }
 

пример конечно злой и не кто такое делать не будет, но вот местами залепить автоматическую кодогенерацию это вариант
PS:при пральном применении множественное наследование не хило облегчает жизнь.(тока подумать какой простор для быдлокодинга....)
Записан
SpartakuS    ↓ 
14 Сентябрь, 2010, 11:13:14 , спустя 5 минут 44 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 32
Сообщений: 2444
Сила слова: 1.31

В пыхе множественнго наследования нет. А почти в любом фреймворке есть кодогенераторы.
Записан


цска ебаное гавно.
adw0rd    ↓ 
14 Сентябрь, 2010, 11:30:35 , спустя 17 минут 21 секунду
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17623
Сила слова: 1.67


И почему это пых говно в контексте этой темы?
может потомучто у него нет множественного наследования, вроде из-за этого вся тема зародилась, нет?
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
SpartakuS    ↓ 
14 Сентябрь, 2010, 11:52:58 , спустя 22 минуты 23 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 32
Сообщений: 2444
Сила слова: 1.31

adw0rd, ну в java нет множественного наследования. Ява от этого становится говном?
Ну и сам я не занимался проблеммой множественного наследования, но вот цитата с википедии:
Множественное наследование критикуется за следующие проблемы, возникающие в некоторых языках, в частности, C++:
 
    * семантическая неопределенность часто совокупно представляется как Проблема ромба.[3]
    * отсутствует возможность явного многократного наследования от одного класса[источник не указан 261 день]
    * порядок наследования изменяет семантику класса[источник не указан 261 день]
 
Множественное наследование в языках с конструкторами в стиле C++/Java усиливает проблему наследования конструкторов и последовательностей конструкторов, таким образом создавая проблемы с поддержкой и расширяемостью в этих языках. Объекты в отношениях наследования со значительно отличающимися методами конструирования довольно трудны для реализации в рамках парадигмы последовательности конструкторов.[уточнить]
Ну и если что - мнжественное наследование можно частично эмулировать делегированием (вроде так метод называется).
Записан


цска ебаное гавно.
adw0rd    ↓ 
14 Сентябрь, 2010, 12:11:45 , спустя 18 минут 47 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17623
Сила слова: 1.67

SpartakuS, значит java гавно
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
kostyl    ↓ 
14 Сентябрь, 2010, 12:18:45 , спустя 7 минут
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3522
Сила слова: 1.7

бля, сколько я программил, никогда не надо было множественное наследование, ну может были намёки на идеи в некоторых местах, но они не были такими весомыми, даже если учитывать, что языки эту фичу не поддеривали...
Записан

качество жизни обратно пропорционально количеству лени
kostyl    ↓ 
14 Сентябрь, 2010, 12:25:43 , спустя 6 минут 58 секунд
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3522
Сила слова: 1.7

Ну и если что - мнжественное наследование можно частично эмулировать делегированием (вроде так метод называется).
Вообще последнее время все советуют любое наследование заменять делегированием, особенно если не катит подстановка Лискоу...
Записан

качество жизни обратно пропорционально количеству лени
Trieg    ↓ 
14 Сентябрь, 2010, 12:29:39 , спустя 3 минуты 56 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 6
Сообщений: 41
Сила слова: 14.63

В пыхе множественного наследования нет.
А как же Traits и Grafts... кстати Traits уже в транке.
PS: так и знал что пример с наследованием будет не удачным =)
Записан
Страниц: [1] 2
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd