belinskiy
@belinskiy
Учусь

Как лучше писать каркас сайта? Вставлять html-код в php-скрипт или наоборот php-скрипты в теги??

Ребята, я извиняюсь за глупый для вас вопрос. Я новичёк и я растерялся.
Вообщем NetBeans мне по умолчанию создал проект со вставленным html в php. До этого делал только статические сайты(CSS+HTML). Погуглил, в итоге нашёл пару древних тем на счёт этого, где писалось, что всё это не имеет значения. А как делает большинство? Заранее спасибо за ваше терпение, внимание и ответы!
  • Вопрос задан
  • 3413 просмотров
Решения вопроса 1
@rsi
software engineer
Действительно, ваш вопрос очень поверхностный.
Для начала вы должны понять, что ваше приложение (сайт) оперирует не только html и php, а логикой, отображением (шаблонами, страницами) и данными (пусть это будет база данных). Это конечно упрощенное описание, и все сложнее, но для вас сойдет.

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

Что это означает на практике? Все ваши файлы должны быть разделены на три категории:
1) Работа с данными (скорее всего это база данных)
2) Логика (некие манипуляции с данными)
3) Шаблоны (файлы где будет верстка)

В первых двух категориях (данные, логика) у вас должно быть только php. В шаблонах вы уже используете в основном html и только в нужных местах используете php для вывода динамики.

К примеру
Файл работы с данными:
//получили данные из базы
 $data = functionForDetDataFormDB();

Файл логики:
//К примеру нам потребовалось обрезать пробелы на концах строк взятых из базы
array_map('trim', data);

Файл шаблона:
<body>
...
<table>
<?php foreach($data as $row):?>
<tr>
<td><?=$row['id']?></td>
<td><?=$row['name']?></td>
<td><?=$row['phone']?></td>
</tr>
<?php endforeach;?>
</table>
...
</body>


Но следует понимать, что то что я описал это лишь простейший пример, вдля того что бы указать вам направление для дальнейшего развития. Все намного сложнее, так что учитесь, читайте книги, изучайте инструменты
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@IceJOKER
Web/Android developer
Прочесть про MVC и отделить все это дело друг от друга.
Ответ написан
saksmt
@saksmt
PHP-developer, Backend
На текущем этапе вашего обучения - не важно, но запомните их смешивать нельзя (поместите РНР в один файл, вёрстку с выводом переменных и простые циклы\условия, никакой логики, никаких запросов, в другой).
Logic.php:
<?php
/* SOME LOGIC HERE */
/* where $someData and $username is defined */
export([
    'someVariableYouWantToUseInTemplate' => $someData,
    'name' => $username,
]);
require 'template.php';


template.php
Hello, <b><?= $username; ?></b>!
И на будущее заучите себе смешивать языки - плохо (они должны быть максимально изолированы друг от друга!) и зазубрите "ЗАПРОСЫ К БАЗЕ ДАННЫХ СТОЯТ ДОРОГО, ЧЕМ МЕНЬШЕ, ТЕМ ЛУЧШЕ", как мантру трижды перед сном.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы