LINUX.ORG.RU

Популярность php-фреймворков

 


1

1

Какой фреймворк сейчас наиболее популярен среди(!) работодателей? Например с cms ситуация весьма неочевидная, среди веб-мастеров популярен вордпресс и мдокс, а среди работодателей (о боже) битрикс.
Именно среди работодателей а не просто интернет-рейтинг, ибо по нему самый популярный laravel, а среди работодателей он мне за все время попадался только один раз.

Ответ на: комментарий от ioexception

А сам взял, да вордпресс притянул. Если фреймворки, я чаще в наших краях слышал от работодятлов вопросы о Symphony да Yii. PHP я уже давно забыл.

Hertz ★★★★★ ()

Например с cms ситуация весьма неочевидная, среди веб-мастеров популярен вордпресс и мдокс, а среди работодателей (о боже) битрикс

Вообще-то всё весьма очевидно и понятно и причина в том, что 1Цэ чуть ли не безальтернативные поставщики всякого разного софта для бюстгалтерии и прочего бизнеса. Ну не с вордпрессом же им интеграцию делать?

Valkeru ★★★★ ()
Ответ на: комментарий от KRoN73

Написал же, что среди работодателей а не разработчиков, ларавел я встречал один раз и тот у какой-то шараги, а по ссылке опроса он самый популярный...

ioexception ()
Ответ на: комментарий от KRoN73

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

ioexception ()

в России фреймворки на пхп не особо популярны, но из тех что в цене - symfony, yii, zend

umren ★★★★★ ()

среди веб-мастеров популярен вордпресс и мдокс

Это только среди школьников или ленивых жоп.

интернет-рейтинг

Маркетинговый буллшит.

Какой фреймворк сейчас наиболее популярен среди(!) работодателей?

На чем они написали свое поделие до тебя, тот и популярен. А их выбор был обусловлен маркетинговым буллшитом.

deep-purple ★★★★★ ()
Ответ на: комментарий от KRoN73

https://habrahabr.ru/post/254277/

Маркетинговый буллшит перетянули в личные проекты.

Я вот помню как все носились с кодигнайтером первым. А там под капотом такое г, что страшно на нем писать. Я вообще не понимаю как он стал популярным. Буллшит же.

Единственный вменяемый среди всех был ZF1, писали его не дураки. А дураки верещали что он сложный. Но уже следующую версию ZF писали социофобы самолюбователи: http://free-eyes.com/wp-content/uploads/2014/08/plemya-bubal.jpg и насували туда всякого дерьма. На хелловорд теперь надо метров 40 памяти. Я не говорю что эти компоненты не нужны, я говорю что в первом зенде ты мог написать что именно и как именно ты загрузишь. А теперь бутстрап генерится композером и там нужное тебе перемешано с лишним гавном.

А борются с нынешними 40мб на хеловорд и временем генерации теперь с помощью костылей под названием кеш. Причем не только кеш в ФС, так еще и всякие варниши прикручивают.

Где-то с месяц назад коллега выбирал на что смигрировать небольшой старый внутренний проект. Исходя из условий, я советовал взять Кохану, но он не послушал и взял симфонию. Стильно, модно, молодежно. И целый меяц я ухмылялся от его выкриков «бльоооо!».

deep-purple ★★★★★ ()
Ответ на: комментарий от KRoN73

А! Он еще и юи успел потыкать, «бльооо!» все так же и продолжались. А потом Кохану он так и не взял — сроки же поджимали ))

deep-purple ★★★★★ ()
Ответ на: комментарий от KRoN73

Нормально она шевелится. Ну и легковесна и подходила под задачу.

Чем не нравятся Laravel/Lumen или Yii?

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

deep-purple ★★★★★ ()
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от erzenteded

Импортонемощение в действии.

И по большому счету как можно отсутствие альтернатив (и/или их малое кол-во) называть популярностью?

deep-purple ★★★★★ ()
Последнее исправление: deep-purple (всего исправлений: 1)

в России фреймворки на пхп не особо популярны, но из тех что в цене - symfony, yii, zend

this.
Когда начинал работать в дизайн-студии — в цене был в-основном битрикс. Тем более что они себя не как CMS/CRM позиционируют, а как полноценный фреймворк, можете в их доке почитать.
Реальные проекты, которые я видел на фреймворках (причем все равно с ужасным говнокодом) — все как сказали выше, причем в приоритетном порядке по кол-ву проектов - Симфони2/первый Yii/ и потом зенд.

znenyegvkby ()
Ответ на: комментарий от deep-purple

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



Что-то вы какой-то несвязный бред пишете.

$.DataTable - это вообще jQuery, с кастомными полями проблем нету, они вообще на разных уровнях. jQuery в браузере работает и никак не знает что там PHP выдает.
Про запросы тоже не понятно, в Yii есть хороший AR и DAO, если нужно, какие PDO? Зачем?

Я бы сказал что кто-то говнокодит, вместо чтения документации.

По моему опыту, сейчас в организациях популярны Yii, Symfony и ZF2. Symfony и ZF2 чуть более и примерно наравне, Yii догоняет по количеству.

BaBL ★★★★★ ()
Последнее исправление: BaBL (всего исправлений: 1)
Ответ на: комментарий от deep-purple

но тогда возникает вопрос — а нахера вообще нужны эти жирные юи недомодели?

Только неадекват используют в Yii толстые контроллеры. И вообще в любом фрейме предоставляющем MVC. Конкретно в Yii для связующей жирной бизнес-логике существуют компоненты (CComponent). Жирные модели — это ужасно :)

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

Только неадекват используют в Yii толстые контроллеры.

s/контроллеры/модели, конечно же. Но для толстых контроллеров это правило тоже применимо :)

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

Только неадекват используют в Yii толстые контроллеры. И вообще в любом фрейме предоставляющем MVC. Конкретно в Yii для связующей жирной бизнес-логике существуют компоненты (CComponent). Жирные модели — это ужасно :)

Мне кажется, вы сейчас в контексте Yii1 говорите?

В Yii2 толстая модель - очень даже распространенный подход. Только очень желательно все же отделять Модель от AR, иначе получится адская лапша.

BaBL ★★★★★ ()
Ответ на: комментарий от BaBL

В Yii2 толстая модель - очень даже распространенный подход. Только очень желательно все же отделять Модель от AR, иначе получится адская лапша.

Именно об этом я говорю. Называйте это как хотите, но ИМХО, лучше иметь все же отдельную сущность. А что это будет не важно. Просто мне легче по сущностям отделять. Когда я слышу модель, то сразу воспринимаю просто схему для записи в хранилище. А вот что за прослойка будет создавать отчет, допустим, юзающий 50 отдельных моделей уже не важно. Главное чтобы основная логика была разделена, иначе действительно будет ад.

znenyegvkby ()
Ответ на: комментарий от BaBL

не знает что там PHP выдает

Но я про то жопорукое говно которое генерит дататаблю (скинул кусок уже с костылями):

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'showFooter'   => true,
        'summary'      => '',
        'tableOptions' => [
            'id'    => 'main-table',
            'class' => 'table table-striped table-bordered responsive nowrap display main-table',
        ],
        'columns' => [
            [
                'attribute' => Yii::t('app', 'Parent Name'),
                'format'    => 'raw',
                'value'     => function($row) {
                     return $row->object_name . ', ' . $row->parent_name; 
                }
            ],
            [
                'attribute'      => 'section',
                'footerOptions' => [
                    'class' => 'small-input',
                ],
                'value' => function($row) {
                    return $row->section;
                }
            ],
            'a',
            'b',
            'c',
            'd',
            'e',
            'f',
            [
                'attribute' => 'g',
                'headerOptions' => [
                    'class' => 'all'
                ],
                'format'    => 'raw',
                'value'     => function($row) {
                    return $row->g;
                }
            ],
            'h',
            [
                'attribute' => 'i',
                'headerOptions' => [
                    'class' => 'all'
                ],
                'format'    => 'raw',
                'value'     => function($row) {
                    return Flat::statuses($row->i);
                }
            ],
            'comment',
            [
                'attribute'     => 'updated_on',
                'headerOptions' => [
                    'class' => 'all'
                ],
                'value' => function($row) {
                    return $row->updated_on;
                }
            ],
            ['class' => 'yii\grid\ActionColumn',
                'headerOptions' => [
                    'class' => 'all'
                ],
                'contentOptions' => [
                    'class' => 'action-buttons',
                ],
                'template' =>'{view} {info}',
                'buttons'  => [
                    'view' => function ($url, $model) {
                         return '<a href="'.Url::toRoute('obj/view/'.$model->id).'"><span class="glyphicon glyphicon-eye-open"></span></a>';
                     }, 
                    'info' => function ($url, $model) {
                         return (strpos($model->grouped_process, 'not_process') !== false) ? '<span class="glyphicon glyphicon-exclamation-sign"></span>' : '';
                     }, 
                ],
            ],
        ],
    ]); ?>
Теперь по запросам, вот что ему было нужно:

PDO::FETCH_CLASS: создает и возвращает объект запрошенного класса, присваивая значения столбцов результирующего набора именованным свойствам класса. Если fetch_style включает в себя атрибут PDO::FETCH_CLASSTYPE (например, PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE), то имя класса, от которого нужно создать объект, будет взято из первого столбца.

PDO::FETCH_INTO: обновляет существующий объект запрошенного класса, присваивая значения столбцов результирующего набора именованным свойствам объекта

Почему именно такая выборка нужна? Не скажу. Уточнять мне некогда.

deep-purple ★★★★★ ()
Ответ на: комментарий от deep-purple

Что вас в этом DataTable не устраивает? О каких конкретно костылях речь?

По второму, мне кажется, ответ в правильно поставленном вопросе:

Почему именно такая выборка нужна? Не скажу.


Да и вообще не понятно что вы хотите сказать. Вы просто скопировали кусок из документации PDO, без вопросов, проблем и прочего. Я тоже так могу:

НАРОД! GO - самый отстойный язык!

Multiple return values

One of Go's unusual features is that functions and methods can return multiple values. This form can be used to improve on a couple of clumsy idioms in C programs: in-band error returns such as -1 for EOF and modifying an argument passed by address.


«И чо?»


Если не можете что-то уточнить - так не пишите это, а то сплошные сопли какие-то.

BaBL ★★★★★ ()
Ответ на: комментарий от deep-purple

Ну ок, если ему будет надо — пусть сам пишет, мне не охота быть испорченым телефоном.

Значит пока остановились на том, что Yii - отличный фреймворк =)

BaBL ★★★★★ ()
Ответ на: комментарий от Twissel

Исходя из условий, я советовал взять Кохану

Она жива?

По-моему, она в 2010 уже умирала, когда я ее юзал последний раз.

BaBL ★★★★★ ()
Ответ на: комментарий от BaBL

По моему опыту, сейчас в организациях популярны Yii, Symfony и ZF2. Symfony и ZF2 чуть более и примерно наравне, Yii догоняет по количеству.

Какой из них хорошо освоить, дабы обеспечить себе безбедное существование?

ioexception ()
Ответ на: комментарий от BaBL

пока остановились на том, что Yii - отличный фреймворк

Неа )) Остановились, но точно не на этом. Я выше писал приемлемые варианты.

Насчет юи, думается мне, это слишком:

'tableOptions' => [
  'id'    => 'main-table',
  'class' => 'table table-striped table-bordered responsive nowrap display main-table'
]
А вот костылики:
function ($url, $model) { .. return ... }
А что насчет отделения мух от котлет? С какого перепугу в шаблонах юи понаписаны неймспейсы и прочий пыхоприкол? Почему данные не подготовлены в контроллерах и моделях заранее?

Кохана в 2010 уже умирала, когда я ее юзал последний раз

https://github.com/kohana/kohana/releases (v3.3.5, released this 27 days ago)

deep-purple ★★★★★ ()
Ответ на: комментарий от ioexception

Какой из них хорошо освоить, дабы обеспечить себе безбедное существование?

Я бы освоил Yii2, Silex (это микросимфони, проще для старта и симфонисты на нем небольшие задачи активно решают, чтобы не ставить монстра) и потом Symfony. Еще в твоем активе будет как минимум 2 разных ORM: Yii - AR, Symfony - DM.

ICQ: 998003
Черт подери, такие люди действительно еще существуют.

Существуют =)

https://github.com/kohana/kohana/releases (v3.3.5, released this 27 days ago)

Вон Chrome уже к 50 версии подобрался, значит ли это что он в 50 раз лучше и минимум на 50 мажорных фич круче чем Chrome 1.0 ? Вот этот график показательней:

https://github.com/kohana/kohana/graphs/code-frequency

Kohana достигла дзена: либо умерла, либо стала идеальна. Хотя одно другое не исключает.

'tableOptions' => [
  'id'    => 'main-table',
  'class' => 'table table-striped table-bordered responsive nowrap display main-table'
]

Так не используйте class и id здесь, сделайте семантическую верстку и укажите стили через селекторы DOM/CSS.

Опять же, это не смешение бизнес логики, вы в одну кучу лепите бизнес логику и логику отображения. Если речь идет о шаблоне, вы почему-то думаете, что там не может быть echo, if и foreach?

function ($url, $model) { .. return ... }

Это не костыль, это замыкание. Замыкание никоим образом не относится к костылям и хорошо вписывается в архитектуру. В PHP они, наконец-то, появились с версии 5.3. Я думаю вам не стоит соваться в Scheme, Lisp и иже с ними, они для вас будут выглядеть как полностью загипсованные люди из комедий с щелочкой на уровне глаз.

А что насчет отделения мух от котлет? С какого перепугу в шаблонах юи понаписаны неймспейсы и прочий пыхоприкол? Почему данные не подготовлены в контроллерах и моделях заранее?

Не знаю почему, у меня в шаблонах нету неймспейсов, просто html код. Наверное это вопрос к вашему программисту, если он бизнес логику переносит в шаблоны? Или вы под неймспейсами имеете ввиду вызовы `use`? Так IDE их сама проставляет и это как раз хороший способ отделить мух от котлет, использовать все что нужно и возможность быстро, одной строкой, сменить GridView со стандартного на, к примеру, kartik.

BaBL ★★★★★ ()
Последнее исправление: BaBL (всего исправлений: 1)
Ответ на: комментарий от BaBL

Это не костыль, это замыкание.

То, что в PHP привыкли называть замыканиями, в других языках называется анонимными функциями.

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

Kilte ★★★★★ ()
Ответ на: комментарий от Kilte

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

Так это оно и есть, просто у него в примере вырожденный случай, могло быть:

'value' => function ($url, $model) use ($foo) { .. return ... }


просто да, в PHP при разговорах не делять анонимные и замыкания, как-то не прижилось.

BaBL ★★★★★ ()

Если в нашей стране, то yii2, скорее всего.

Igron ★★★★★ ()

[troll mode]

Magento based on Zend framework

[/troll mode]

Twissel ★★★★★ ()
Ответ на: комментарий от menangen

Ты настолько неравнодушен к пистону, что постоянно везде его приносишь (в частности джангу), даже под видом сарказма или шутки xD

znenyegvkby ()
Ответ на: комментарий от menangen

А тебе намекают, что в каждом треде не про пистон как чёрт из табакерки выскакиваешь ты и агитируешь на пистон. Синдром утёнка до добра не доводит.

ThisNameWasFree ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.