как лучше всего реализовать и использовать не готовый контроллер, а свой собственный.- я тебе показал код простейшего роутера который пишется по памяти в блокноте в перерыве на обед. Там даже параметры экшена не определяются, только сам контроллер и метод.
class Router {
private $routes;
public function __construct(){
$routerPath = ROOT.'/routing/routes.php';
$this->routes = include($routerPath);
}
private function getURI(){
if(!empty($_SERVER['REQUEST_URI'])){
return trim($_SERVER['REQUEST_URI'], '/');
}
}
public function Run(){
$uri = $this->getURI();
if(!array_key_exists($uri, $this->routes)){
echo "Такой старницы нет!";
//Перенаправить на 404.
exit();
}
foreach($this->routes as $pattern=>$path){
if($pattern == $uri){
$controllerAndAction = explode('/',$path);
//Узнаем имя контроллера и экшена:
$controllerName = $controllerAndAction[0];
$actionName = $controllerAndAction[1];
//Назначаем имена файлу контроллера:
$controllerFileName = $controllerName . 'Controller.php';
//Подключаем файл контроллера:
include ROOT . '/controllers/'.$controllerFileName;
//Создаем класс контроллера:
$controllerObject = new $controllerName;
//Вызываем метод класса контроллера:
$result = $controllerObject->$actionName();
}
}
}
}
?>
а далее чтобы цепочка сама выполнилась
class Test {
public $c;
public function x(){
$this->c = $this->z() + 5;
return $this->c;
}
private function z(){
return 5;
}
}
$ccc = new Test();
echo $ccc->x();
// Выводит: 10.
А можете привести примемеры сайтов, если вам не сложно?держи: https://www.google.com/search?q=%D1%81%D0%B5%D1%80...
Простым способом разместил файл в базе
// Все проверки картинки выше...
//Генерация случайного имени картинки:
$_FILES['image']['name'] = md5(time() . uniqid($more_entropy=true)) . "." . $image_extension;
$sql = 'INSERT INTO items SET
name = :name,
description = :description,
price = :price,
date = NOW(),
category_id = :category_id,
address = :address,
image = :image,
user_id = :user_id';
$s = $pdo->prepare($sql);
$s->bindValue(':name', $_POST['name']);
$s->bindValue(':description', $_POST['description']);
$s->bindValue(':price', $_POST['price']);
$s->bindValue(':address', $_POST['address']);
$s->bindValue(':category_id', $_POST['category_id']);
$s->bindValue(':image', $_FILES['image']['name']);
$s->bindValue(':user_id', $_SESSION['id']);
$s->execute();
$file_name = $_FILES['image']['name'];
// Уменьшаем картинку. Берем из tmp_name и туда же возвращаем уменьшенную.
imageResize($_FILES['image']['tmp_name'], 700);
$file_tmp = $_FILES['image']['tmp_name'];
move_uploaded_file($file_tmp,"../images/".$file_name);
header("Location:/");