- 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
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
<?php
function getCategoryText($id){
$cats = FNewsCategory::model()->getCategories();
return $cats[$id];
}
?>
$this->widget(
'zii.widgets.grid.CGridView', array(
'id' => 'newsListForm',
'ajaxUpdate' => false,
'dataProvider' => $model->search(),
'filter' => $model,
'cssFile' => false,
'pager' => array(
'class' => 'CLinkPager',
'pageSize' => 50,
'cssFile' => false,
),
'columns' => array(
'id',
'header',
array(
'name' => 'content',
'value'=>'mb_substr($data->content, 0, 300) . "..."'
),
'ndate',
array(
'name' => 'fixed',
'type' => 'raw',
'filter'=>CHtml::dropDownList(
'FNews[fixed]',
isset($_GET['FNews']['fixed']) ? $_GET['FNews']['fixed'] : '',
array('0'=>'Нет','1'=>'Да'),
array('empty' => 'Фильтр отсутствует')
),
'value'=>'($data->fixed == "1") ? "Да" : "Нет"',
'htmlOptions' => array('width' => '140')
),
array(
'name' => 'rubric_id',
'type' => 'raw',
'filter'=>CHtml::dropDownList(
'FNews[rubric_id]',
isset($_GET['FNews']['rubric_id']) ? $_GET['FNews']['rubric_id'] : '',
FNewsCategory::model()->getCategories(),
array('empty' => 'Фильтр отсутствует')
),
'value'=>'getCategoryText($data->rubric_id)',
'htmlOptions' => array('width' => '140')
),
array(
'name' => 'lang',
'type' => 'raw',
'filter'=>CHtml::dropDownList(
'FNews[lang]',
isset($_GET['FNews']['lang']) ? $_GET['FNews']['lang'] : '',
array('ukr'=>'Украинский','ru'=>'Русский','en'=>'Английский'),
array('empty' => 'Фильтр отсутствует')
),
'htmlOptions' => array('width' => '60')
),
array(
'class' => 'CButtonColumn',
'template' => '{update}{delete}',
'buttons' => array(
'update' => array(
'click' => $updateDialog,
'url' => 'Yii::app()->controller->createUrl("admin/news",array("action"=>"newsList","make"=>"update","id"=>$data->primaryKey))',
),
'delete' => array(
'url' => 'Yii::app()->controller->createUrl("admin/news",array("action"=>"newsList","make"=>"delete","id"=>$data->primaryKey))',
),
),
),
),
)
);
Чем является getCategories:
public function getCategories()
{
$array = CHtml::listData(FNewsCategory::model()->findAll(), 'rubric_id', 'rubric_nameRu');
return $array;
}
Типичный шаблон на фреймворках, в данном случае на Yii 1.1 и от тим-лида!
Да-да, функция прямо в шаблоне и вызывается из цикла. :)
bayan 13.12.2016 15:36 # −1
guest 13.12.2016 22:10 # −1
Pidor 13.12.2016 22:21 # −2
Dr_Stertor 13.12.2016 22:50 # −2
Pidor 14.12.2016 10:37 # −1
bayan 13.12.2016 22:53 # −1
M-A-X 14.12.2016 10:21 # −1
Другое дело, что его простота послужила причиной засилья долбоебов. :)
Pidor 14.12.2016 10:46 # +3
P.S.: Кстати, "Битрикс" в госкорпорациях модно использовать, вероятно, по той причине, что не разбирающемуся в программировании госзаказчику достаточно показать, насколько дохуя там директорий и файлов с тысячами строк кода каждый, и тот решит, что, дескать, да - некая масштабная работа была проведена, и можно отвалить пару-тройку миллионов. Со скриптом из одной директории и десяти ссаных файликов такой номер не прокатил бы.
bayan 14.12.2016 15:35 # 0
Так и есть. https://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
Архитектура не нужна. нужно ПИСАТЬ КОДДД1111
inkanus-gray 14.12.2016 17:39 # −1
TPAXHY_B_AHYC 14.12.2016 17:53 # 0
inkanus-gray 14.12.2016 18:07 # −1
Вы видели, во что превращаются форумные движки после добавления новых фишек? В том же phpBB отказались от идеи фреймворка, MVC, и теперь в нём куча дублирующегося кода и довольно сложно что-нибудь допилить.
3_14dar 14.12.2016 20:18 # 0
bayan 14.12.2016 20:56 # 0
http://www.discourse.org/
http://spirit-project.com/
inkanus-gray 15.12.2016 05:30 # 0
guest 13.02.2017 23:35 # 0
TPAXHY_B_AHYC 14.12.2016 20:57 # +1
Dr_Stertor 14.12.2016 23:14 # −1
inkanus-gray 15.12.2016 05:43 # 0
Вот нахрена нужно 100500 функций такого типа:
Digitalus, Magento, Social Engine, Pimcore, Slys, Cultsoft в ту же топку.
bayan 15.12.2016 21:23 # 0
Пыховцы слышали звон, да не знают где он. У них все такое. "SPL" -- несмешная пародия на стандартные библиотеки других ЯПов, частично реализованные модификаторы доступа -- пародия на их аналоги в других языках, фреймворки пародии итд. Не Язык, а смех на палочке.
TPAXHY_B_AHYC 16.12.2016 06:38 # −1
inkanus-gray 16.12.2016 13:26 # 0
barop 16.12.2016 13:30 # +1
Бля, типизация и правда непричем
3_14dar 18.12.2016 19:22 # 0
M-A-X 15.12.2016 10:46 # 0
Извращенцы.
bayan 14.12.2016 15:28 # −2
так может говорить только тот, кто ни одного другого языка в жизни не видел
loki90 14.12.2016 22:46 # −1
bayan 14.12.2016 22:48 # +1
loki90 14.12.2016 22:54 # −1
psr-4
Xz\Ololo\SuperClass
лежит в
src/Xz/Ololo/SuperClass.php
а в java
xz.ololo.SuperClass
внезапно по тому же принципу.
Куча ключевых слов, интерфейсы, ООП - все это если не спизжено, то точно подражает.
Про все спизжено - да, загнул
bayan 14.12.2016 23:03 # +3
>> Xz\Ololo\SuperClass
>> лежит в
>> src/Xz/Ololo/SuperClass.php
>> а в java
В си mymodule лежит в mymodule.c
А в VisualBasic в mymodule.bas
внезапно по тому же принципу.
>>Куча ключевых слов
В PHP есть ключевое слово class, и в C++ тоже
нынешний пых - это С++ c динамической типизацией.
>>интерфейсы
В PHP есть интерфейсы, и в ObjectiveC тоже
нынешний пых - это ObjectiveC c динамической типизацией.
>>ООП
нынешний пых - это Smalltalk с функцией print_r
И да: в джаве тоже есть динамическая типизация.
loki90 14.12.2016 23:27 # 0
interface Animal {
public void eat();
public void travel();
}
vs
interface Animal
{
public function eat(): void;
public function travel(): void;
}
сходства определенно есть
и что обсуждается - https://wiki.php.net/rfc/generics
bayan 14.12.2016 23:35 # +3
А многие из них в C# еще, а часть вообще пришла их C++.
>>и что обсуждается
Генерики есть примерно везде, начиная с С++сных шаблонов:
https://en.wikipedia.org/wiki/Generic_programming
пыховцы конечно очень смешные: сначала делают ЯП без стат. типизации, затем, по кусочкам, ее туда тянут. Расшибут лоб о ковариантность и контрвариантность, как пить дать.
loki90 14.12.2016 23:44 # 0
bayan 14.12.2016 23:49 # +1
loki90 14.12.2016 23:56 # 0
symfony/phalcon вполне нормальные
http://php.net/manual/ru/book.xhprof.php - от фейсбука профайлер
так что при желании вполне можно закосить
bayan 15.12.2016 00:07 # 0
"хватает" это https://docs.oracle.com/javase/7/docs/api/ или https://msdn.microsoft.com/en-us/library/system(v=vs.110).aspx
А в "spl" мы видим примерно пару коллекций: ни работы с локалью, ни с текстом, ни с HTTP, ни с сетью ("ПОД ВЕБ" же все таки).
>>http://php.net/manual/ru/book.xhprof.php - от фейсбука профайлер
Профайлер это вот http://i.imgur.com/5Jvyvgq.png
Или вот https://docs.elementscompiler.com/Platforms/Cocoa/Instruments/Using_Instruments-_3-Leaks.png
В пыховом даже кучу нормально не посмотреть
huesto 15.12.2016 00:14 # +1
loki90 15.12.2016 00:18 # 0
huesto 15.12.2016 00:58 # 0
bayan 15.12.2016 01:09 # +4
Мне просто нравится сраться.
3_14dar 16.12.2016 18:15 # 0
inkanus-gray 15.12.2016 05:27 # 0
Уточните, завезли ли его в PHP 5.6 (я уже не говорю про PHP 7.x).
inkanus-gray 15.12.2016 13:48 # 0
https://sandro-keil.de/blog/2015/02/10/php-profiling-tools/
roman-kashitsyn 15.12.2016 00:09 # 0
bayan 15.12.2016 00:15 # 0
В C#, например, или в Kotlin, типы выводятся и проверяются сами в момент компиляции.
Но можно и HH в фоне запустить.
Конечно это не так клево, но тоже помогает. Настоящий PHP стайл.
>>HHVM supports Hack, PHP 5 and the major features of PHP 7. We are aware of minor incompatibilities,
Отличный выбор. Удобно и стабильно.
M-A-X 15.12.2016 10:52 # 0
subaru 15.12.2016 16:23 # 0
M-A-X 15.12.2016 10:50 # 0
Тогда все языки одинаковые - везде есть ООП, процедурное программирование, ФП.
Никто на PHP не пишет в стиле жабы. (Ну кроме фреймворщиков. Писали бы уже на жабе тогда, а то дрочка какая-то :) )
subaru 15.12.2016 16:23 # 0
TPAXHY_B_AHYC 15.12.2016 16:35 # −1
Dr_Stertor 15.12.2016 18:27 # −2
M-A-X 15.12.2016 10:47 # −1
И чем плох PHP?
:)
bayan 15.12.2016 16:13 # −2
Зачем для веба нужен особенный язык?
Веб это всего-лишь интерфейс.
А какой язык лучше для консоли?
А для GUI?
>>И чем плох PHP?
ну что мне, опять про "фрактал плохого дизайна" рассказывать?
M-A-X 15.12.2016 19:04 # −1
Поэтому прошу не съезжать.
А если не веб-разработчик, то вообще не лезть. :)
>ну что мне, опять про "фрактал плохого дизайна" рассказывать?
Что лучше и чем именно? :)
bayan 15.12.2016 21:18 # −1
Не существует "языков для веба". Веб ничем не отличается от других областей.
Но Вы, вероятно, ничего кроме веб-сайтов на PHP не делали, потому не понимаете такие очевидные вещи.
>>А если не веб-разработчик,
У моих программ бывают и веб интерфецсы тоже.
>>Что лучше и чем именно?
Python, Ruby, Kotlin, C#, что угодно.
>>чем именно
архитектурой, фреймворками, стандартной библиотекой, модульностью, средствами разработки, дебага и профилирования, коммунити, см "фрактал плохого дизайна" в общем
bormand 16.12.2016 19:15 # 0
Parser 3. Попробуй применить его для чего-то другого...
roman-kashitsyn 16.12.2016 19:21 # 0
Вот ещё занятный пример из прошлого
https://en.wikipedia.org/wiki/RTML
bormand 16.12.2016 19:22 # 0
О_о
CHayT 18.12.2016 19:47 # +2
barop 18.12.2016 23:24 # +1
M-A-X 18.12.2016 18:55 # 0
А SPL - то хер пойми что.
subaru 15.12.2016 16:23 # 0
Dr_Stertor 15.12.2016 18:39 # −3
TPAXHY_B_AHYC 15.12.2016 18:41 # −3
Dr_Stertor 15.12.2016 18:45 # −3
TPAXHY_B_AHYC 15.12.2016 18:46 # −3
Dr_Stertor 15.12.2016 18:49 # −3
Глубже, глубже!..
TPAXHY_B_AHYC 15.12.2016 18:52 # −3
Dr_Stertor 15.12.2016 18:57 # −1
Объясни мне одну вещь, как ты ешь этим ртом?
TPAXHY_B_AHYC 15.12.2016 19:13 # −3
Dr_Stertor 15.12.2016 21:08 # −3
M-A-X 15.12.2016 19:08 # −3
TPAXHY_B_AHYC 15.12.2016 19:14 # −3
Dr_Stertor 15.12.2016 21:07 # −3
huesto 15.12.2016 21:18 # −3
M-A-X 16.12.2016 10:34 # +6
guest 16.12.2016 19:23 # −3
Dr_Stertor 16.12.2016 19:53 # −1
TPAXHY_B_AHYC 16.12.2016 22:04 # 0
3_14dar 16.12.2016 11:54 # 0
guest 16.12.2016 12:11 # 0
guest 16.12.2016 13:16 # 0
Dr_Stertor 16.12.2016 17:35 # 0