- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
protected function composeResolvers()
{
require_once systemConfig::$pathToSystem . '/resolver/init.php';
require_once systemConfig::$pathToSystem . '/resolver/templateMediaResolver.php';
require_once systemConfig::$pathToSystem . '/resolver/moduleMediaResolver.php';
require_once systemConfig::$pathToSystem . '/resolver/extensionBasedModuleMediaResolver.php';
require_once systemConfig::$pathToSystem . '/core/fileLoader.php';
$baseresolver = new compositeResolver();
$baseresolver->addResolver(new fileResolver(systemConfig::$pathToApplication . '/*'));
$baseresolver->addResolver(new fileResolver(systemConfig::$pathToWebRoot . '/*'));
$baseresolver->addResolver(new fileResolver(systemConfig::$pathToSystem . '/*'));
$resolver = new compositeResolver();
$resolver->addResolver(new templateMediaResolver($baseresolver));
$resolver->addResolver(new moduleMediaResolver($baseresolver));
$resolver->addResolver(new extensionBasedModuleMediaResolver($baseresolver));
$resolver->addResolver(new classFileResolver($baseresolver));
if (function_exists('external_callback')) {
external_callback($resolver, $baseresolver);
}
return new cachingResolver($resolver, 'resolver_media_cache');
}
Прямиком с http://govnokod.googlecode.com/svn/trunk/govnoquoter/www/bundle.php
Там ещё много всего интересного!
Govnocoder#0xFF 07.12.2010 13:59 # −3
telnet 07.12.2010 14:43 # +3
Oleg_quadro 07.12.2010 18:45 # −4
telnet 07.12.2010 19:14 # −4
Анонимус 07.12.2010 14:00 # 0
господи, бедные пыховцы. Это же неизвестный никому кроме пыховцев ад)
telnet 07.12.2010 14:46 # +1
Анонимус 07.12.2010 14:48 # +1
инклюжен гарды надо делать
в самом популярном языке в 2010м году)
guest8 09.08.2020 11:14 # −999
gost 09.08.2020 11:15 # 0
Анонимус 07.12.2010 14:58 # 0
Если создатель языка призывает писать говнокод, то не удивительно что все его слушают)
http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
Oleg_quadro 07.12.2010 16:21 # 0
кстати, английский Лердорфа читается легко.
Oleg_quadro 07.12.2010 16:24 # −2
Анонимус 07.12.2010 16:28 # +1
Oleg_quadro 07.12.2010 16:33 # 0
Анонимус 07.12.2010 16:34 # 0
"зачем делать сложные фреймворки? все равно они за вас ничего не сделают, и надо все писать руками". И после этого пишет говнокод.
Oleg_quadro 07.12.2010 16:37 # −1
пока отложил чтение. Позже скажу свой вердикт.
===
Но если он реально так считает, то это плохо.
Это говорит о том, что человек не занимался разработкой сайтов, как следует.
Анонимус 07.12.2010 16:43 # 0
И дело не в сайтах. Дело в подходе в целом. Лердорф -- плохой программист. Он не думает над архитектурой, и пишет ковбойский код. И этот факт находит отражение в языке, потому что каждый язык -- отражение взглядов его автора.
Если автор в 38 лет не понимает почему глобальные переменные --- это плохо, то очевидно что и в языке у него будут глобальные переменные.
Если он не понимает зачем нужны фреймворки -- то и фреймворков в языке нормальных не будет.
Oleg_quadro 07.12.2010 17:00 # −1
Он говорит такие вещи: разбивай программу на маленькие кусочки, ты можешь их потом разнести на несколько серверов.
(Слова не мальчика, но мужа).
Он говорит, что компоненты должны быть разделены.
Также у него есть примеры, где в перемешку PHP и HTML, но он пишет, что юзать PHP в HTML надо мало: использовать только простые вызовы функций, циклы и выводы.
То есть в этом случае он использует PHP как шаблонизатор.
В конце он говорит умную мыслю: никто не сделает приложение за вас. Чем потратить кучу времени на допиливание чужих фреймворков, лучше потратить время на свой фрэймворк, что сбережёт ваши нервы.
====
Вообщем мысли у него правильные есть.
Анонимус 07.12.2010 18:36 # +1
add_c.inc -- христоматийная, нетесриуемая говнокаша из логики и HTTP.
>>Он говорит такие вещи: разбивай программу на маленькие кусочки, ты можешь их потом разнести на несколько серверов.
причем каждый кусочек он предлагает вынести в отедельный файлик.
Он просто не знает, что кластеризация должна делаться уровнем выше, а не распихиванием файликов по разным серверам. Джависты знают, дотнетчики знают, а он не знает.
Он так же говорит что не надо все пускать через один контроллер.
конечно. сайт должен состоять из 100500 файликов index.php, разложенных по разным папочкам)
>>. Чем потратить кучу времени на допиливание чужих фреймворков, лучше потратить время на свой фрэймворк
конечно, лучше изобрести очередной велосипед. Вот такой метод каждый программист должен писать сам и с ноля:
и как же это бедная джава живет со спрингом, струтсом, и всей J2EE кухней и не хнычет. Может быть потому, что хорошо документированный фреймворк, написанный хорошими программистами -- настраивается без допиливания?
>>Вообщем мысли у него правильные есть.
Да у него одна строчка "$this->fatal_error($e->getMessage());" четыре раза повтояется! Он когда нить слышал, что копипаст -- это запах?
А вот это вообще пзц:
удобно наверное такой контроллер тестировать.
А про JS код cо строками типа
литерал 'desc_', который у нас в commons!!
а потом он же в пыхе (в контроллере):
за одно "validate_error'=>'f_'.substr($k,5)" на говнокод можно.
Oleg_quadro 07.12.2010 18:40 # −1
Анонимус 07.12.2010 18:43 # 0
о том, что мне не нужен фреймворк, потому что я напишу сейчас все сам?
Oleg_quadro 07.12.2010 18:44 # −1
Также я недавно стал склоняться к тому, что нужен один файл, который разруливает. Типа как в Catylyst
Насчёт уровня выше не знаю, может как раз написание кода в разных файликах, помогает потом средству расспараллеливания.
Анонимус 07.12.2010 18:51 # +2
ну вот видите)))
Это же очевидно: у запроса должен быть конкретный workflow, что бы можно было его логировать, снимать статистику, добавлять секурити, кешировать итд...
кроме того в системе должно быть ОДНО место, знающее об HTTP.
Остальные места знать о нем не должны. Тогда они будут легко тестироваться.
А 500 файликов, в каждом из которых еще 10 include сверху -- это кошмар.
>>Насчёт уровня выше не знаю, может как раз написание кода в разных файликах, помогает потом средству расспараллеливания.
:))))) интересно -- как?
файлик addEntryToGuestBook.php у нас лежит на одном сервере, а listEntries.php -- на другом? И ссылки в HTML правильно проставлены на разные сервера))
Я вот запускаю свое приложение на десяти разных серверах, делаю им общее хранилище сессий (в базе) и ставлю перед ними енджин, который раунд-робином запросы на них отправляет.
И когда приходит еще 100500 человек -- я просто добавляю еще 10 машин (это т.н. "горизонтальное маштабирование").
а пыхопешники начинают патчтить пхп, патчить мемкешд итд (как это делают фейсбуки всякие)
bugmenot 07.12.2010 20:23 # 0
оленьи орешки?
Oleg_quadro 07.12.2010 20:35 # 0
То таблицу выложите,
то тут увидили тему.
brainstorm 08.12.2010 02:35 # −1
koodeer 08.12.2010 09:33 # +1
http://gramota.ru/slovari/dic/?lop=x&bts=x&zar=x&ab=x&sin=x&lv=x&az=x& pe=x&word=%E2%EE%EE%E1%F9%E5%EC
Oleg_quadro 08.12.2010 15:46 # +1
Oleg_quadro 07.12.2010 17:03 # −2
А вот это хорошо! Потому, что базу ты можешь поменять на другую (перейти например на memcached), а остальной код не изменится.
Lure Of Chaos 07.12.2010 17:31 # 0
> (дескать все это хорошо для гостевой книги, но не для продукта, где 7 разработчиков)
правильно, на пхп даже с фреймоворком код говно. Поэтому, если ваша аппликашка далеко не гостевая книга, то не стоит мучаться с написанием своего фреймворка, а взять другую платформу и писать уже на ней
3.14159265 07.12.2010 16:44 # 0
тут он в чем-то прав.
например если выбирать между ORM и SQL.
но это моя личная позиция - как сторонника минимализма и любителя языка BrainFuck
Анонимус 07.12.2010 16:45 # +1
и конкретно об mvc)
и то, что в PHP до сих пор нет нормального collections api например -- именно об этом пренебрежении к фреймворкам и говорит
3.14159265 07.12.2010 17:05 # +1
тогда чур я не с ним!
>и конкретно об mvc)
вот кто оказывается главный любитель каши
Lure Of Chaos 07.12.2010 17:45 # 0
потому что в пхп нет коллекций как таковых. Ага, есть ассоц.массивы, но для них уже полно array_* функций.
Мои претензии к языку:
1. почему выражения не клеятся, как в перле, то есть нельзя написать типа $f()[0]->$a['a'];
2. нет нормальной обьектной модели (чехарда с неймспейсами, наследованием, полиформизмом,областью видимости)
3. отсутствие статической типизации наравне с динамической (то есть почему сигнатуру я могу определить как function f(A $a, B $b), но не могу сделать то же самое с переменными и полями, как: var A $a; и var $v; )
4. ужасный рефлекшн
5. непоследовательный синтаксис (те же $this и parent::) и унаследованы излишне громоздкие конструкции с++, типа стрелок и двойного двоеточия
ведь это не противоречит нелюбви к фреймворкам )
и мы бы получили гораздо более красивый и удобный язык на той же платформе.
хм... Наверное мы бы тогда получили groovy = )
Oleg_quadro 07.12.2010 18:37 # +1
Говнокод!
inkanus-gray 07.12.2010 18:43 # −1
Я тоже это замечал. Если бы не было говнокода, сайт не оправдал бы своё название.
Lure Of Chaos 07.12.2010 18:55 # −1
Oleg_quadro 07.12.2010 20:17 # −1
Oleg_quadro 07.12.2010 20:18 # 0
"Где здесь С++?" ?
telnet 07.12.2010 20:39 # 0
Oleg_quadro 07.12.2010 20:43 # +1
telnet 07.12.2010 20:59 # 0
Lure Of Chaos 07.12.2010 21:08 # 0
Oleg_quadro 07.12.2010 21:17 # 0
bugmenot 07.12.2010 21:39 # +1
Oleg_quadro 07.12.2010 21:41 # 0
На воре шапка горит.
bugmenot 07.12.2010 21:51 # 0
Lure Of Chaos 07.12.2010 21:55 # 0
http://img1.liveinternet.ru/images/attach/b/3/16/930/16930419_IMG_4661.JPG
или шапочки для двойняшек
http://saccharineirony.files.wordpress.com/2007/12/men_bra1.jpg
bugmenot 07.12.2010 22:15 # 0
Oleg_quadro 08.12.2010 00:57 # 0
istem 08.12.2010 21:05 # +1
guest6 19.09.2023 20:31 # 0
Yurik 07.12.2010 16:26 # 0
Расмус Лердорф — датский программист (ныне живущий в Канаде)
andremacareno 07.12.2010 20:24 # +2
brainstorm 08.12.2010 02:37 # 0
Анонимус 07.12.2010 16:28 # 0
тоже будете знать, что фреймворки не нужны, зато нужно хардкодить обращение к статическим классам и глобальным переменным, и урлы генерировать прямо в логике, что бы код был нететируемым
Oleg_quadro 07.12.2010 16:32 # 0
bugmenot 07.12.2010 17:02 # +2
Oleg_quadro 08.12.2010 15:46 # 0
gost 09.08.2020 11:09 # 0
Первый багор в базе «НГК», между прочим.
gostinho 09.08.2020 11:16 # 0
gost 09.08.2020 11:16 # +1
dwinner 07.12.2010 14:52 # 0
Анонимус 07.12.2010 15:32 # 0
3.14159265 07.12.2010 16:46 # −2
Lure Of Chaos 07.12.2010 17:46 # 0
Анонимус 07.12.2010 15:31 # 0
теперь понятно, почему в официальной доке по питону написано про юнит-тесты< а в доке по пыху -- нет
Oleg_quadro 07.12.2010 16:15 # −2
Автор покажи как надо. И на примере mzz!
====
я, когда выкладывал код с говнокода, не был так быстр в решениях.
telnet 07.12.2010 18:35 # +1
brainstorm 08.12.2010 02:38 # 0
bugmenot 07.12.2010 16:32 # 0
Lure Of Chaos 07.12.2010 17:27 # +3
striker 08.12.2010 00:59 # 0
striker 08.12.2010 00:59 # 0
Govnocoder#0xFF 08.12.2010 22:08 # −2
striker 09.12.2010 00:45 # +3
И про какую копипасту речь? Видите где-то одинаковые строчки?
sectus 08.12.2010 06:34 # 0