Что лучше альтернативный синтаксис PHP или скобочки {}?


Dmitriy_2014
404

Всем привет!

Как вы думаете что лучше, использование альтернативного синтаксиса PHP( : endif ), с кучей вставок из обычной HMTL разметки в связки с кусками php кода или скобочки {}, но с кучей echo?

В дефолтной теме от WordPress — Twenty_Twenty, посмотрел код и вроде бы они стараются все сделать скобочками, хотя может это и не точно 🙂

Заранее всем спасибо за ответы и мнения!


livetv

Альтернативный синтаксис


Mik Foxi

Все альтернативное — зло.

Чтоб потом не мучаться как с <? вместо <?php потому что когда-то хотелось альтернативного и лень было написать 3 лишних знака.


Sitealert

Dmitriy_2014 :
или скобочки {}, но с кучей echo

Ты тёплое с мягким перепутал.


miketomlin

Dmitriy_2014 :
Как вы думаете что лучше, использование альтернативного синтаксиса PHP( : endif ), с кучей вставок из обычной HMTL разметки в связки с кусками php кода или скобочки {}, но с кучей echo?

Альт. синтаксис и скобочный для разного используются. Первый для шаблонов. И echo тоже разные есть 😉 Для шаблонов – <?= ?> (а <?php echo уже устарело, т.е. можно смело не использовать, если у вас не прописана совместимость с древним пыхом; у нас в софте общего назначения обычно прописана совместимость с пыхом 5.4+, в котором <?= ?> уже работает без вариантов).


ArbNet

Dmitriy_2014 :

PHP или скобочки {}

Для начинающего программиста который пишет свой самопис-движок лучше нативный PHP при использовании метода MVC. То есть сначала вычисляютсяполучаются данные которые помещаются в массив переменных, затем определяется нужный шаблон, это html c вставками <?=$var;?>. Далее PHP инклюдит шаблон, подставляет в него(<?=$var;?> ) данные из переменных. MVC прост в понимании и быстр нативностью, сам PHP выступает в роли шаблонизатора по сути.

Скобочки или другие метки удобны для составления макетов и заполнения этих html макетов данными, хочешь на сервере в бекэнде, хочешь подгрузкой на JS во фронте. Этим способом я пользовался в своём прежнем движке лет 10 назад. И некоторые современные движки это используют, но не так продуманно, почему говорю не продуманно, потому что такие шаблонизаторы тупо замедляют работу скрипта при рендеринге вставки данных в эти скобочки, надо сначала найти скобочки, найти нужные данные, заменить скобочки в исходном тексте на данные, и повторить это много раз. К тому же во фронте эти же шаблонизаторы не в связке с фронтом и во фронте работают другие фреймворки и опять замедление. Вот и ищут мастера какие-то ускорители, всякие костыли.. А надо просто сделать хороший движок чтобы работал в бэке и фротне по одному методу.

Я лично этим вопросом занимался ещё тогда, лет 10 назад. А год назад разработал более продвинудый метод с XML. Многим тут пытался объяснить, но тем кто думать не способны и не использовали, вернее не разрабатывали сами такие методы для движка, не в состоянии это понять.

Поэтому всё зависит от уровня знаний разработчика, админа сайта. Если вы знаете PHP и пишите свой движок, то используйте метод MVC с нативными вставками, вот только это будет работать только в бекэнде на сервере. Если не опытный, то проще использовать готовый шаблонизатор, но он будет замедлять работу скрипта. Выбор за вами.


Dmitriy_2014

Не не я не про альтернативные теги PHP типа там короткий echo-тег <?= или открывающий короткий тег <? и т.п.

Я хотел спросить про альтернативный синтаксис у некоторых управляющих конструкций типа if и как бы было бы быстрее.

<?php if (is_single()) : ?>

<?php  ?>

<p><?php the_author_posts_link(); ?></p>

<div></div>

/*

Куча HTML тегов и вставок PHP с отступами, лишними строками и всякой фигней…

*/

<?php endif; ?> 

Вот про двоеточие : и endif как я понимаю все что между ними попадает в исходный код страницы, включая отступы, лишние строки и т.п.

ИЛИ

Как в шаблоне Twenty Twenty 1.0 (кусочек):

<?php

wp_link_pages(

array(

‘before’      => ‘<nav class=»post-nav-links bg-light-background» aria-label=»‘ . esc_attr__( ‘Page’, ‘twentytwenty’ ) . ‘»><span class=»label»>’ . __( ‘Pages:’, ‘twentytwenty’ ) . ‘</span>’,

‘after’       => ‘</nav>’,

‘link_before’ => ‘<span class=»page-number»>’,

‘link_after’  => ‘</span>’,

)

);

edit_post_link();

// Single bottom post meta.

twentytwenty_the_post_meta( get_the_ID(), ‘single-bottom’ );

if ( post_type_supports( get_post_type( get_the_ID() ), ‘author’ ) && is_single() ) {

get_template_part( ‘template-parts/entry-author-bio’ );

}

?> 

Или вот лучше все чтоб одним PHP блоком было например как кусочек из шаблона Twenty Twenty.


Dmitriy_2014

Немного неудачный пример с кодом из Twenty Twenty, но надеюсь вы поняли, меньше открывающих и закрывающих тегов <?php ?>, но в моем случае будет много echo


Sergei Ermilov

miketomlin #:
 <?= ?> 

У кого устарело? Например, при создании тем под WP использовать такой синтаксис, мягко говоря, не рекомендуется. Да в нормальных фреймворках такого нигде нет. Зато на всех курсах «учителя» впаривают такой синтаксис.


miketomlin

Dmitriy_2014 #:
Я хотел спросить про альтернативный синтаксис у некоторых управляющих конструкций типа if и как бы было бы быстрее.

Я вам про это тоже написал. Читайте внимательнее.

2on2 #:
У кого устарело? Например, при создании тем под WP использовать такой синтаксис, мягко говоря, не рекомендуется.

Тоже мне нашли образец для примера 😂 Если WP-шники ориентируются в своих рекомендациях на своих предков, это их проблемы 😉

2on2 #:
Да в нормальных фреймворках такого нигде нет.

Примеры норм. фреймворков, в которых этого нет. Может, это не PHP-фреймворки? 🤣


ArbNet

Dmitriy_2014 #:
Немного неудачный пример с кодом из Twenty Twenty, но надеюсь вы поняли, меньше открывающих и закрывающих тегов <?php ?>, но в моем случае будет много echo

В первом примере это нативный шаблон с вставками данных кодом PHP.

А в втором похоже на контроллер, но это просто вызов функций не ООП. Очень примитивнейший способ, сейчас всё делается классами.

Короче если понимаете о чём говорю, то выкиньте нафиг это г..  напишите, найдите более современный движок. Если не понимаете, не заморачивайтесь, работает и ладно 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *