Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Укажите на ошибки
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Укажите на ошибки

Страниц (4): [1] 2 3 4 »
 

1. etoYA - 15 Мая, 2012 - 17:11:40 - перейти к сообщению
Вот сайт, точнее только движок и то не доделаный. А шаблона так вообще нету.. Можете посмотреть код и указать на ошибки?
2. Bio man - 15 Мая, 2012 - 17:21:49 - перейти к сообщению
Ошибка №1 - short open tag.
Заметил сразу как открыл. Такие вещи в будущем не будут поддерживаться и будут исключены (в 5.4 уже исключены), кроме <?=
По ходу дела еще чего нибудь напишу
(Добавление)
Класс debug настораживает...
3. digi - 15 Мая, 2012 - 18:14:56 - перейти к сообщению
1) в классах не должно быть хтмл тэгов.

PHP:
скопировать код в буфер обмена
  1. class AdminController extends AbstractController{
  2.    // ......
  3.    $this->errstr .= '<pre>Введите пароль</pre>';
  4. }


2) как вы используете эту конструкцию?
PHP:
скопировать код в буфер обмена
  1.  
  2.         function __construct(Router $route){
  3.                 $this->route = $route;
  4.                 return $this->route;
  5.         }
  6.  


3) имхо статику надо юзать только в особо необходимых случаях, и потобные вещи выглядят некрасиво Недовольство, огорчение
PHP:
скопировать код в буфер обмена
  1. class CategoryController extends AbstractController{
  2.     // ....
  3.     'page' => Films::selectFilm($arg[1], $catId),
  4. }


4) комбинация комментариев в стиле // и # странно смотрится ;)) вообще имхо лучше не юзать в РНР каменты #.

5) почему не указываете режим доступа к методам?

6) с БД первый раз вижу такое решение Улыбка) забавное Улыбка) толкьо не ООП-шное ;) присмотритесь к PDO, а еще можно сразу присмотреться к Doctrine DBAL.

ну как-то так ;)
4. etoYA - 15 Мая, 2012 - 18:31:52 - перейти к сообщению
А что с БД не так? MySQLi юзаю
(Добавление)
digi пишет:
1) в классах не должно быть хтмл тэгов.


Это только для теста, потом уберу. Просто накрылся монитор немогу нормальный шаблон сделать).

digi пишет:
2) как вы используете эту конструкцию?


$this->route->setLayout($tpl->render('index.phtml'));
digi пишет:
3) имхо статику надо юзать

только в особо необходимых случаях, и потобные вещи выглядят некрасиво


Так вроде бы и есть).

etoYA пишет:
5) почему не указываете режим доступа к методам?


А смысл? Если нужен приватный метод или протектный, то указываю, а в паблинке не вижу смысла..
(Добавление)
Bio man пишет:
Ошибка №1 - short open tag.


Это <? ?> ?
5. Мелкий - 15 Мая, 2012 - 19:10:01 - перейти к сообщению
Bio man пишет:
Такие вещи в будущем не будут поддерживаться и будут исключены (в 5.4 уже исключены),

ЧЯНТД?
CODE (bash):
скопировать код в буфер обмена
  1. web@unstable:~$ php -f test.php
  2. 5.4.0-2
  3. web@unstable:~$ cat test.php
  4. <?
  5. echo PHP_VERSION, PHP_EOL;
  6. web@unstable:~$


Никуда короткие теги не денутся, наоборот теперь неотключаемая запись <?=
6. Bio man - 15 Мая, 2012 - 19:44:06 - перейти к сообщению
Мелкий пишет:
Никуда короткие теги не денутся, наоборот теперь неотключаемая запись <?=
В общем <? по умолчанию отключены. Вот что я имел ввиду.
7. Мелкий - 15 Мая, 2012 - 19:49:56 - перейти к сообщению
Bio man пишет:
В общем <? по умолчанию отключены.

Включены.
http://ru.php.net/manual/en/ini.core.php
8. digi - 16 Мая, 2012 - 07:22:51 - перейти к сообщению
есть отличное понятие "Стандарты кодирования" Улыбка можно взять за основу например http://symfony.com/doc/master/contributing/code/standards.html, код читается очень легко и не важно сам ты его написал или кто-то другой и не важно юзаете ли вы симфони сейчас или нет... всё равно если есть в планах серьёзное занятие программированием, то лучше приобщиться сразу к мировой практике ;) а еще лучше сразу изучать симфони2 ;) благо с этого года начали появлятсья русскоязычные статьи ;)

еще полезно юзать "Соглашения по именованиям методов, например такие http://symfony.com/doc/master/contributing/code/conventions.html.


а, по коду:

2) непонятно зачем вы возвращаете что-то вообще из конструктора? вроде как только с РНР 5.4 допускается запись вида $Obj = new ClassName()->getSomeBar('some_val'); но вроде как и тут ненадо ничего возвращать из конструктора...


кстати, почему есть методы которые вызываются статически, но они не объявлены статическими? ;)


вы какие-нить фреймворки изучали? надо познакомиться хотябы с Symfony2 и Yii, разумеется юзать симфони, а йии просто посомтреть как раньше прихоилось юзать статику из-за корявости РНР 5.1 Улыбка
9. Мелкий - 16 Мая, 2012 - 09:51:47 - перейти к сообщению
Поглядел мельком код - то ли где-то хитро заныкано, то ли сплошная дыра по части инъекций.

digi пишет:
но вроде как и тут ненадо ничего возвращать из конструктора...

Фишка в том, что из конструктора вообще ничего не возвращается. return - лишь способ прервать выполнение.
Но при этом конструктор и метод __construct - разные вещи. Технически никто не мешает:
PHP:
скопировать код в буфер обмена
  1. $o = new foo(); //конструктор, возвращает всегда экземпляр класса
  2. $o->__construct(); //обычный метод, что в return'е - то и вернёт


digi пишет:
только с РНР 5.4 допускается запись вида $Obj = new ClassName()->getSomeBar('some_val');

Это только синтаксический сахар. Никто не мешает:
PHP:
скопировать код в буфер обмена
  1. class foo {
  2.     public function bar() {
  3.         echo 'это - '.__CLASS__;
  4.         }
  5.     }
  6. function factory($class) {
  7.     return new $class();
  8.     }
  9. factory('foo')->bar();


digi пишет:
надо познакомиться хотябы с Symfony2 и Yii, разумеется юзать симфони


Картинки большие (2мб), но красивые:
https://github[dot]com/eryx/php-fram[dot][dot][dot]/zf2/funmap0[dot]png - ZF
https://github[dot]com/eryx/php-fram[dot][dot][dot]ony2/funmap0[dot]png - симфони2 (миниатюра выше)
И 4-кратное! превосходство Yii: https://github[dot]com/eryx/php-fram[dot][dot][dot]/yii/funmap0[dot]png
Так что у меня ооооогрооооомные сомнения в корявостях.
10. digi - 16 Мая, 2012 - 10:12:04 - перейти к сообщению
Мелкий, есть еще очень популярные системы например Bitrix, joomla, Drupal, Wordpress и т.д. но популярность не связана с грамотной внутренней технической реализацией.

а вы "превосходство" как именно измеряете? в милисекундах? ;)

какой у вас личный опыт работы с сф2, зф и йии?
11. Мелкий - 16 Мая, 2012 - 11:49:45 - перейти к сообщению
Речь лишь о том, что каждой задаче - свои инструменты. Если для вашей задачи тяжеловес симфони подходит - можете использовать его.
Но это далеко не сам собой разумеющийся выбор.

digi пишет:
какой у вас личный опыт работы с сф2, зф

Небольшой, да. Не нашёл ничего, ради чего надо выполнять такую прорву работы на запуск.
Мне Yii и kohana тяжёлыми кажутся, а уж эти - подавно.
12. digi - 16 Мая, 2012 - 12:04:29 - перейти к сообщению
всё верно, инстурмент должен быть под задачи Улыбка но называть симфони 2 тяжеловесом это неверно ;)) там очень интересные механизмы кеширования реализованы и в купе дают очень вкусный результат в плане скорости ;)
13. Мелкий - 16 Мая, 2012 - 12:31:15 - перейти к сообщению
digi, пруф выше. Банальный hello world - в 4 раза больше ресурсов, чем Yii. Отдельно замечу - это не единичный запуск, а конкурентные 200-поточные 50 тыс. запросов.

Нет, конечно, если сравнивать с каким-нибудь битриксом - получится манна небесная. А с другими фреймворками - откровенный тяжеловес.
14. digi - 16 Мая, 2012 - 13:49:46 - перейти к сообщению
скачал php-framework-benchmark, пощупал Улыбка затея интересная! только расчинана на новичков ;) чтобы спугнуть их псевдо исслодованиями ;)

скачал репу и в сф2 оставил только 2 бандла, которые и нужны для "хелло ворлда"
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Acme\HelloBundle\AcmeHelloBundle(),

итого сравнительные показатели:
Symfony2:
Execution time: 0.006 sec. Memory usage 877600 bytes (1048576 peak)
Yii:
Execution time: 0.005 sec. Memory usage 756064 bytes (786432 peak)

итого йии выигрывает примерно 10-20%, что в прицнипе нормально Улыбка

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

Execution time: 0.022 sec. Memory usage 1562920 bytes (1835008 peak)

да, действительно по времени раз 5 раз медленнее, и в 2 раза больше памяти съедает... но тогда надо и в йии, включать автостарт сессий, систиему безопасности, работу с БД, логгирование, работу с аннотациями, шаблонизатор твиг, работу с формами, CSRF защиту, работу с почтой и т.д... Улыбка) а то карманный калькулятор с настлоьным компьютером сравнили и сделали вывод на полном серьёзе ;)
(Добавление)
кстати, предлагаю форумчанам и сделать такой бенчмаркинг! Улыбка давайте сделаем решение типового блога на разных платформах и погоняем их сами? Улыбка я на себя Symfony2 готов взять Улыбка

тогда и выводы будут более менее адекватные Улыбка

сам бы хотел увидеть решения на Yii и ZF2.
15. etoYA - 16 Мая, 2012 - 14:20:07 - перейти к сообщению
Мелкий пишет:
Поглядел мельком код - то ли где-то хитро заныкано, то ли сплошная дыра по части инъекций.

Действительно хитро заныкано). В library/debug.php
(Добавление)
digi пишет:
кстати, почему есть методы которые вызываются статически, но они не объявлены статическими? ;)


Чтобы не обьявлять обьект).

 

Powered by ExBB FM 1.0 RC1