Задать вопрос
  • Как протестировать производительность функций начинающему php-разработчику?

    AgentSmith72
    @AgentSmith72 Автор вопроса
    ThunderCat,

    Это все равно что в такси привозить машины на машине, потому что мы не знаем сколько будет пассажиров,

    ошибаетесь, мы сразу из RouteController попадаем в типовой контроллер, где формируется имя нужной машины, и она вызывается объектом, созданным в конструкторе родительского контроллера типовых контроллеров.

    $method собирается как конкретная машина для конкретного типа запроса

    return $content = [
          'posts' => $this->model->$method($url)
    ];


    Просто у компани три телефона, один отвечает за грузоперевозки и резервирует соответствующую машину, а другой типовой контроллер (диспетчер) обрабатывает пассажирские перевозки, третий соответственно это секретарь администратора, и отправляет за босом вертолёт.
  • Как протестировать производительность функций начинающему php-разработчику?

    AgentSmith72
    @AgentSmith72 Автор вопроса
    ThunderCat, URL формируется в зависимости от типа пользователя, если это авторизованный пользователь, то URL принимает вид site.ru/user/Nikolai-Drozdov/office

    Таким образом, если мы здесь не находим типовой контроллер:
    ($controller == 'main')? $i = 0 : $i = 2;
    то искать метод типовой модели следует после имени авторизованного пользователя.

    Что вас смущает конкретно?
  • Как протестировать производительность функций начинающему php-разработчику?

    AgentSmith72
    @AgentSmith72 Автор вопроса
    Дмитрий, Спасибо, PSR фреймворк на основе стандартов, обязательно гляну..
  • Как протестировать производительность функций начинающему php-разработчику?

    AgentSmith72
    @AgentSmith72 Автор вопроса
    уже плохо, контроллер не должен знать что-то про урл и прочие переменные извне. Для этого есть роутер и реквест.

    Вообще-то это правило работает только касательно Модели и Вида, где они не знают друг о друге.

    Как тип контроллера соотносится с ролью пользователя?

    Так что создаётся объект к примеру AdminController, а аргументы попадают в родительский контроллер типового контроллера. Типовой контроллер формирует имя метода у типовой модели AdminModel.

    У вас же уже вызван контроллер, RouteController.php, либо он не контроллер, либо зачем тогда снова контроллер создавать? И зачем ему урл?

    ($controller == 'main')? $i = 0 : $i = 2;
    $check = 'get' . ucfirst(explode('/', $url)[$i]);  // URL нужен чтобы не хранить инфо в свойствах класса
    
    if(method_exists($this->model, $check))
    else // 404 error


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

    А URL в RouteController.php нужен, так как автобусы едут прямо по карте (с) Яндекс.
  • Как протестировать производительность функций начинающему php-разработчику?

    AgentSmith72
    @AgentSmith72 Автор вопроса
    Роман Юрьевич Ипатьев, Директива в файле php.ini

    memory_limit = 128M // Задаёт максимальный объем памяти в байтах, который разрешается использовать скрипту.

    Нашёл функцию getrusage(), которая делает всё что требуется.

    $data = getrusage();
    echo $data["ru_oublock"]; // количество операций вывода блока
    echo $data["ru_inblock"]; // количество операций приёма блока
    echo $data["ru_msgsnd"]; // количество отправленных сообщений IPC
    echo $data["ru_msgrcv"]; // количество принятых сообщений IPC
    echo $data["ru_maxrss"]; // наибольший размер установленной резидентной памяти
    echo $data["ru_ixrss"]; // суммарное значение размера разделяемой памяти
    echo $data["ru_idrss"]; // суммарное значение размера неразделяемых данных
    echo $data["ru_minflt"]; // кол. исправленных страниц (лёгкая ошибка страницы)
    echo $data["ru_majflt"]; // кол.ошибочных страниц (тяжёлая ошибка страницы)
    echo $data["ru_nsignals"]; // количество полученных сигналов
    echo $data["ru_nvcsw"]; // количество согласованных переключений контекста
    echo $data["ru_nivcsw"]; // количество несогласованных переключений контекста
    echo $data["ru_nswap"]; // количество свопов
    echo $data["ru_utime.tv_usec"]; // время на задачи пользователя (user time) (микросекунды)
    echo $data["ru_utime.tv_sec"]; // время на задачи пользователя (user time) (секунды)
    echo $data["ru_stime.tv_usec"]; // время на системные задачи (system time) (микросекунды)
  • Как протестировать производительность функций начинающему php-разработчику?

    AgentSmith72
    @AgentSmith72 Автор вопроса
    Роман Юрьевич Ипатьев, опытный разработчик мне и сказал, что так как программисты народ ленивый, то ему проще обращаться к памяти, легко узнавая, что там находится, чем прослеживать роутинг переменных с начала их пути.

    По мне так это уже не KISS, а лёгкая эротика.
  • Как протестировать производительность функций начинающему php-разработчику?

    AgentSmith72
    @AgentSmith72 Автор вопроса
    Роман Юрьевич Ипатьев, Мой вопрос подразумевает: как тестировать функциональную реализацию, чтобы в зависимости от затрат системных ресурсов использовать либо вызов чистильщика значений переменных-аргументов либо обращаться к памяти.

    Так как я планирую выстраивать архитектуру отталкиваясь не от удобочитаемости кода, а от эффективности использования системных ресурсов.
  • Как протестировать производительность функций начинающему php-разработчику?

    AgentSmith72
    @AgentSmith72 Автор вопроса
    Пример простой, но речь идёт про разницу между аргументами и обращением к свойствам:

    В первом случае, после окончания работы функции, значения переменных удаляются из памяти.
    Во втором случае, мы постоянно тратим память на хранение значений.