BPage CMS - система за създаване на уеб сайт

AMitrev

Well-Known Member
От сега ти казвам този проект е обречен на провал. Когато спегети кода беше модерен тогава бяха най-силните години на спагети уестърните.

Започвай на ново като задължително не правиш тая глупост да смесваш php и html.
 

stuklen

Well-Known Member
Дай пример за по-добро решение и се обоснови. И може би как се генерира html без смесване с php.
Ако ми допадне идеята, увеличи се бързодействието и времето за реакция, трия и почвам на ново.
 

AMitrev

Well-Known Member
@stuklen не случайно използвах израза "темплейт енджин" в предходните си мнения. Ако не ти допадне идеята значи трябва да смениш сферата на работа.
С тези спагети които пишеш как ще имаш 2 различни теми за сайта? Ако трябва някой фронтендер да фиксне нещо, колко неща ще може да омаже като така си ги спагетосал php-то и html-а :)

@rombeca нека не бъркаме template engine с framework ;)
 

stuklen

Well-Known Member
Добре дай един пример. За това съм я пуснал тази тема, хем да пиша какво правя, хем да си сверя чаровника, да получа съвети и т.н.
За мен това:
PHP:
<?php
foreach($entries as $entry)
    echo "
    <h1>{$entry['title']}</h1>
    <p>{$entry['description']}</p>
    ";
?>
Е много по-четимо и по-кратко от това:
HTML:
<?php foreach($entries as $entry): ?>
    <h1><?= $entry['title']; ?></h1>
    <p><?= $entry['description']; ?></p>
<?php endforeach; ?>
С времето ще разяснявам още неща, но да добавя, че е възможно с 1 инсталация да се направят n на брой сайта с 100% различни теми и функции, като дори за всеки отделен компонент, може да има n вида дизайн за една тема. Пример с 1 модул за менюта, може да си направиш хоризонтално, вертикално вложено,.. каквито ти душа сака изгледи.
 
Последно редактирано:

Sky

Well-Known Member
Имам проблем с английския, за това може би се затруднявам с тези лицензионни истории, ще го прегледам.
Ядро има, темплейт, енджина също, дори в момента работя по темплейт генератор. Може би не си прочел писанията от 1-вия пост. Основите си ги има и са правени сайтове от разнороден тип.
Добре дай един пример. За това съм я пуснал тази тема, хем да пиша какво правя, хем да си сверя чаровника, да получа съвети и т.н.
За мен това:
PHP:
<?php
foreach($entries as $entry)
    echo "
    <h1>{$entry['title']}</h1>
    <p>{$entry['description']}</p>
    ";
?>
Е много по-четимо и по-кратко от това:
HTML:
<?php foreach($entries as $entry): ?>
    <h1><?= $entry['title']; ?></h1>
    <p><?= $entry['description']; ?></p>
<?php endforeach; ?>
С времето ще разяснявам още неща, но да добавя, че е възможно с 1 инсталация да се направят n на брой сайта с 100% различни теми и функции, като дори за всеки отделен компонент, може да има n вида дизайн за една тема. Пример с 1 модул за менюта, може да си направиш хоризонтално, вертикално вложено,.. каквито ти душа сака изгледи.
Пак ги мешаш:
HTML:
@foreach ($entries as $entry)
    <h1>{{ $entry->title }}</h1>
    <p>{{ $entry->description }}</p> 
@endforeach
 

rombeca

Active Member
@rombeca нека не бъркаме template engine с framework ;)
Не ги бъркаме. Под ново начало, имам в предвид - истинско ново начало.
От правилното MVC, а не "хибриден MVC, като модела и контролера са заедно", до Blade темплейт енджина.
Отделно половината система се създава с 3 команди, и 20 реда код.
 

AMitrev

Well-Known Member
@stuklen проблема е, че часовника ти е спрял някъде в началото на 21 век.

PHP спагети:
Код:
<?php $counter=0; ?>
<?php foreach($foo as $bar): ?>
  <?php if(($counter+1) % 4 == 0): ?>
    </tr><tr>
  <?php endif; ?>
  <td><?php echo $bar; ?></td>
  <?php $counter++; ?>
<?php endforeach; ?>
Smarty
Код:
{foreach $foo as $bar}
  {if [email protected] is div by 4}
    </tr><tr>
  {/if}
  <td>{$bar}</td>
{/foreach}
twig
Код:
{% for key, bar in foo %}
{% if key is divisible by(4) %}
 </tr><tr>
  {/if}
  <td>{{ bar }}</td>
{% endfor %}
Данните са си данни, а обвиката е както го направи фронтендера ;). В твоя случай някой трябва да влиза в така наречената бизнес логиката и да променя я някое име на клас, я някой html елемент с друг и накрая става мармалад.

@rombeca за какво му е на човек танк за да убие муха, като може и с най-обикновен вестник? Да не говорим, че MVC не е най-доброто/ефективно решение за всеки проблем ;)... може пък човека да иска да ползва MVVM/MVP/etc.

Прав си иначе за 20-те реда код. Само където забравяш че за целта ще ти трябват още 400кБ текстови файлове ;)
 

ArtBean

Active Member
https://mustache.github.io/ - ето ти един базов темплейт енджин, за php не знам кое е най-готиното в момента, защото отдавна не съм писъл на тоя език, но предполагам и сам ще си намериш каквото ти трябва.
 

stuklen

Well-Known Member
Използването на такъв тип енджин, щото някой казал, ми се струва леко необосновано.
Дай така сме на темата да ги разнищим.
Използване на енджин:
Плюсове:
- Лесно разчетим код с условност програмиста, който се занимава да е със знания за този енджин;
Минуси:
- Допълнително включване на скриптове;
- Допълнителна подръка на скриптове;
- Задължителни познания извън PHP и HTML /свива се кръга на програмистите, които могат да работят с него/;
- Загуби от бързодействие;
- Използване на допълнително процесорно време;

А то реално стила на кодене в скриптовете на темата е свободно. Който както му харесва и му е удобно, така да го прави. До човека си е и според мен, ако не влияе на бързодействие и използвано процесорно време това няма толкова голямо значение.

Да кажем, че при мен се използва нещо като (MC)V модел.

И като допълнение, винаги съм се водил от съждението "Колкото по-опростено, толкова по-добре".
 

ArtBean

Active Member
Вярно е, че има някаква специфичност в използването на всеки енджин, но тя се корени в няколко простички правила в синтаксиса. Не мисля, че съм виждал някъде да се търсят специалисти с jade, twig и т.н.. А останалото изобщо нямам намерение да го коментирам.
 

AMitrev

Well-Known Member
Като натрупаш повече опит ще разбереш смисъл от ползването на темплейт енджини.
Сега набързо по плюсовите и минусите:

Плюсове:
- Лесно разчетим код с условност програмиста, който се занимава да е със знания за този енджин;
Става дума за елементарен синтакси. Даже повечето модерни версии на различните темплейт енджини (специално за PHP) са със синтаксис на php
Пропускаш най-важното разделение на логика от визия. Спокойно front-end-ера който ще работи по проекта ще свърши работата без да се налага някой програмист да тича след него да бърше.

Минуси:
- Допълнително включване на скриптове;
- Допълнителна подръка на скриптове;
- Задължителни познания извън PHP и HTML /свива се кръга на програмистите, които могат да работят с него/;
- Загуби от бързодействие;
- Използване на допълнително процесорно време
Какво значи допълнително включване на скритоптове? Това е часта от ядрото на проекта ти която се грижи за визията, ти и сега я имаш но е просто нефункционална и неудобна.
Какви знания извън php/html ти трябват? Нужни са ти само php знания нищо повече.

Загуби? Допълнително процесорно време?
PHP:
<?php
foreach($entries as $entry)
    echo "
    <h1>{$entry['title']}</h1>
    <p>{$entry['description']}</p>
    ";
?>
vs

PHP:
<?php
foreach($entries as $entry)
    echo '<h1>'.$entry['title'].'</h1>
    <p>'.$entry['description'].'</p>';
?>
Познай кой от двата кода е по бавен и изисква повече ресурси ;).
 

stuklen

Well-Known Member
За съжаление не виждам в отговорите, защо аджаба да се водя по модата.
Колко кб скриптове ще трябва да се обработват, колко допълнително инструкци ще извърши енджина, да запълни или адресира памет, да парсира темплейта.
До колкото съм запознат PHP се затруднява доста с прасването на стрингове.

Търсил съм бенчмаркове по темата, но не съм намирал. Енджина реално подобрява ли работата за генериране на страница.

AMitev за мен разлика няма в 2-та варианта.
 

imagination

Active Member
Темплейт енджина основно е правен за да могат фронт енд девелоперите да не се бъркат в работата на програмистите. Това не е мода, мода е било преди 10-15 години. Факт е, че всяка една съвременна работна рамка следва до някаква степен MVC и има темплейт енджин.
Ако искаш да развържеш ръцете на хората да правят темплейти за твоят ЦМС, добави такъв енджин. В крайна сметка процесорното време е евтино и ще продължава да му пада цената, докато за човешкият труд важи обратният закон - направи го лесно за човека не за машината.
Обратното също е вярно - има много системи, които са писани със спагети код и са много успешни.
Поздрави.
 

stuklen

Well-Known Member
Добре, това е ясно и е добър мотив, но нали мерим бързодействие и "защо постоянно хостинг компаниите ме изнудват".
Може би за някакви големи комерсиални проекти, при които тези неща не са важни, а се програмира на килограм, има текучество на фрондендъри. Тук съм съгласен.
И какво е по лошо това
PHP:
<?php
foreach($entries as $entry)
    echo "
    <h1>{$entry['title']}</h1>
    <p>{$entry['description']}</p>
    ";
?>
от това, с допълнително файлове за зареждане, допълнително парсване на файлове, допълнителни познания.
PHP:
{foreach $foo as $bar}
  {if [email protected] is div by 4}
    </tr><tr>
  {/if}
  <td>{$bar}</td>
{/foreach}
И да намеся мастодонтите, които често са обект на спор, а именно масовите опънсорс CMSи и защо не ползват такива екстри?
 

AMitrev

Well-Known Member
@stuklen за теб няма разлика, но за машината има. Нали за бързодействие и процесорно време говориш.
Колко ресурс ще ти отнеме template engine си зависи само от теб - какъв ще избереш, какъв ще направиш или ....
Да не говорим, че не всичко е бързодействие.

След Х време сам ще се убедиш, че в този спагетарник няма да се ориентираш.

Какви допълнителни познания ти трябват за примера който си цитирал (smarty-тито), че ми стана любопитно?

@imagination няма такива системи - успешни спегетарници. Питай хората които им се налага да поддържат такъв код - на теб отвън може да ти изглежда успешно, но реално не е така, защото разодите по такъв код са ужасно много. АКо пък е опен соурс то няма да намериш хора които да контрибютват. В най-добрият случай ще се намери ентусиаст или група ентусиасти, които да напишат системата както трябва.
 

Sky

Well-Known Member
@stuklen за теб няма разлика, но за машината има. Нали за бързодействие и процесорно време говориш.
Колко ресурс ще ти отнеме template engine си зависи само от теб - какъв ще избереш, какъв ще направиш или ....
Да не говорим, че не всичко е бързодействие.

След Х време сам ще се убедиш, че в този спагетарник няма да се ориентираш.

Какви допълнителни познания ти трябват за примера който си цитирал (smarty-тито), че ми стана любопитно?

@imagination няма такива системи - успешни спегетарници. Питай хората които им се налага да поддържат такъв код - на теб отвън може да ти изглежда успешно, но реално не е така, защото разодите по такъв код са ужасно много. АКо пък е опен соурс то няма да намериш хора които да контрибютват. В най-добрият случай ще се намери ентусиаст или група ентусиасти, които да напишат системата както трябва.
Опенкарт?
 

AMitrev

Well-Known Member
WP може да е лош код, но то е следвствие, че хората искаха да прави всичко. Но пък не е спагетарник.
Опенкарта също не е спагатерник.

Спагетарник беше oscommerce, но като видяха че губят комюнитито си (бяха първите и бе интересно на хората) го пренаправиха.
 

Горе