Вход на сайт
Какие зарплаты сейчас у (Senior) PHP-Entwickler?
1915 просмотров
Перейти к просмотру всей ветки
в ответ alex445 25.07.22 00:59
А как выглядит проект на пыхе из сотен классов?
Обычно можно сделать маленькие PHP файлы, которые можно вызвать по AJAX.
Пример поиск песен, который вызывается по AJAX:
<?php require_once('./config/config.php'); require_once('./libs/core/mod_core.php'); require_once('./libs/core/mod_database.php'); require_once('./libs/core/mod_audio.php'); session_start(); if(!isset($_SESSION['UserID'])) exit; header('Content-Type: application/json'); $arr_files = array(); $arr_files = audio_find('%' . @$_POST['title'] . '%', 0, 10000); die(json_encode($arr_files)); ?>
И как его код миксуется с разметкой?
Пример MVC:
index.php:
<?php require_once('./controller/MainController.php'); // Подключаем контроллер MainController.php $mc = new MainController; // Объект mc - MainController // Если action не существует, или action пустой, то $str_action по умолчанию будет index if(!isset($_REQUEST['action']) || is_null($_REQUEST['action'])) $str_action = 'index'; else $str_action = $_REQUEST['action']; // Иначе считываем action // Обработка action switch($str_action) { case 'index': echo $mc->action_index(); // Если action = index, то вызываем метод из MainController action_index(), и отображаем break; } ?>
Контроллер MainController.php:
<?php require_once('./model/main.php'); function show($filename, $values = NULL) { ob_start(); if(isset($values)) extract($values); include($filename); return ob_get_clean(); } class MainController { public function action_index() { $mm = new MainModel; // Объявляем MainModel $str_view = show('./view/home.php', array('person' => $mm->get_items())); return show('./view/template.php', array('title' => 'Home', 'content' => $str_view)); } } ?>
Модель MainModel.php:
<?php class MainModel { private $arr_items; public function __construct() { $this->arr_items = array('firstname' => 'Anton', 'lastname' => 'Popov', 'gender' => 'M', 'birthday' => '01.05.1980'); } public function get_items() { return $this->arr_items; } } ?>
Шаблон template.php:
<html> <head> <title><?=$title; ?></title> </head> <body> <?=$content; ?> </body> </html>
Вьюшка home.php
<h1>Home</h1> <?php foreach($person as $k => $v): ?> <div><?=$k; ?>=<?=$v; ?></div> <?php endforeach; ?> </table>
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение