Php phalcon volt, "Wrong number of parameters"

Доброго дня. есть кто разбирается в php phalcon volt ?

Помогите разобраться.
Я в программе в файле index.php имею такой код:

try {

/**
* Read the configuration
*/
$config = include __DIR__ . "/../app/config/config.php";

/**
* Read auto-loader
*/
include __DIR__ . "/../app/config/loader.php";

/**
* Read services
*/
include __DIR__ . "/../app/config/services.php";

/**
* Handle the request
*/
$application = new \Phalcon\Mvc\Application($di);

echo $application->handle()->getContent();
} catch (\Exception $e) { echo $e->getMessage(); }

а во взаимосвязанном файле – services.php:

/**
The FactoryDefault Dependency Injector automatically register the right services providing a full stack framework */

$di = new FactoryDefault();
/**

The URL component is used to generate all kind of urls in the application */

$di->set('url', function () use ($config) { $url = new UrlResolver(); $url->setBaseUri($config->application->baseUri);

return $url; }, true);

При запуске исполнения программы возникает ошибка - “Wrong number of parameters”.
Я не могу разобраться в чем проблема …что уже только не пробовал…

Помогите пожалуйста новичку…

Где именно?
Это весь текст ошибки?
Стек-трейса или имени файла/номера строки в ней (или в каких-нибудь логах) нет?

Нет , не указаны в том то и дело… я поустранял все что выскакивало и вылезло это на белом экране… где только не читаю - такая ошибка бывает и указывает на какуюто несовместимость и параметры, но нигде ничего не нашел по существу для устранения…

Есть версия, что изменилась структура запросов на новой версии … но тоже материала ноль

Так не выводите только сообщение )

catch (\Exception $e) {
    echo $e;
}

появилось это - BadMethodCallException: Wrong number of parameters in F:\programming\SOFT\OpenServer\domains\fastdk\public\index.php:42 Stack trace: #0 F:\programming\SOFT\OpenServer\domains\fastdk\public\index.php(42): Phalcon\Mvc\Application->handle() #1 {main}

Оно вроде бы строку с url принимает:


В оф. туториале так: https://docs.phalcon.io/4.0/en/tutorial-basic#putting-everything-together

...

$container = new FactoryDefault();

...

$container->set(
    'url',
    function () {
        $url = new Url();
        $url->setBaseUri('/');
        return $url;
    }
);

$application = new Application($container);

try {
    // Handle the request
    $response = $application->handle(
        $_SERVER["REQUEST_URI"]
    );

    $response->send();
} catch (\Exception $e) {
    echo 'Exception: ', $e->getMessage();
}

Жесть, что только уже не пробовал

$application = new \Phalcon\Mvc\Application($di);

    echo $application->handle('url')->getContent();

} catch (\Exception $e) {
    echo $e; //->getMessage();

Результат Fatal error : Uncaught Error: Class ‘Phalcon\Mvc\User\Component’ not found in F:\programming\SOFT\OpenServer\domains\fastdk\app\library\Eaisto.php:5 Stack trace: #0 [internal function]: unknown() #1 [internal function]: Phalcon\Loader->autoLoad() #2 F:\programming\SOFT\OpenServer\domains\fastdk\app\config\services.php(216): spl_autoload_call() #3 [internal function]: Closure->{closure}() #4 [internal function]: Phalcon\Di\Service->resolve() #5 [internal function]: Phalcon\Di->get() #6 [internal function]: Phalcon\Di->getShared() #7 F:\programming\SOFT\OpenServer\domains\fastdk\app\controllers\ControllerBase.php(24): Phalcon\Di\Injectable->__get() #8 [internal function]: ControllerBase->beforeExecuteRoute() #9 [internal function]: Phalcon\Dispatcher\AbstractDispatcher->dispatch() #10 F:\programming\SOFT\OpenServer\domains\fastdk\public\index.php(40): Phalcon\Mvc\Application->handle() #11 {main} thrown in F:\programming\SOFT\OpenServer\domains\fastdk\app\library\Eaisto.php on line 5

:sob: :sob: :sob: :sob: :sob: :sob: :sob:

Так а чем оф. пример не подходит?

С текущей ошибкой это наверно не связано, но вообще тут же надо адрес запроса передать, например, из $_SERVER["REQUEST_URI"].

https://forum.phalcon.io/discussion/20683/uncaught-error-class-phalconmvcusercomponent-not-found

Use \Phalcon\Di\Injectable instead. In v4 class Component was removed.

Я вот что не пойму. Приложение написано несколько лет назад (еще в 2015 примерно) и с тех пор работает на сервере linux debian и сейчас… Но в 2020 оно морально пристарело и его нужно обслуживать … я это приложение (исходники ) вытащил на локальную машину, развернул open ser… установил phalcon, настроил конфигурацию… и такая ошибка… “Wrong number of parameters”. Никаких запросов раннее не требовалось, код работает и сейчас на серваке, а у меня на локалке отказал… когда я полез читать по форумам , то почему то на английском понял что изменился метод структуры запроса… и про url прочел… но я сижу и в недоумении не понимаю, как это поправить малой кровью или все в мусор и сначало…, но это жесть…

Может легче версию фреймворка понизить, так сказать старую установить, где еще все по старому , но где взять разные версии фрейм ворка?

Обычно в современных PHP проектах используют Composer для установки всех библиотек, и там указывается версия, и оно само ставит всё нужное при выполнении команды composer install. :tropical_drink:

…но Phalcon, похоже, особенный, и тут я не вижу ничего про композер: https://docs.phalcon.io/4.0/en/installation :koloboksrsly:

Вот документация для 3.4: https://docs.phalcon.io/3.4/en/installation


Хотя тут вроде используют Composer:


Но видимо всё равно надо что-то отдельно ставить на сервер:

To run this application on your machine, you need at least:

  • PHP >= 7.2
  • Phalcon >= 4.0

На сервере приложение работает…это на локалке с windows не работает , пытаюсь посмотреть версию php и phalcon на сервере, но пока не понял как через консоль это сделать

php -v
apt list --installed | grep phalcon

На серваке Zend Engine v2.6.0 with Zend OPcache v7.0.6-dev а на локалке windows open ser c php 7.4 на Phalcon Team and contributors Version 4.0.6 Build Date May 16 2020 16:31:19 Powered by Zephir Version 0.12.17-6724dbf. похоже в этом дело … на серваке другая версия phalcon///

Так а Phalcon какой на сервере?

Если 3.*, то можно взять 3.4, по идее там не должны ломать совместимость с другими 3.*

это - apt list --installed | grep phalcon не стал пробовать … если на серваке обновится то тами тоже ляжет как на локалке . Я так и не понял какой phalcon на серваке, не знаю команду как посмотреть версию …в каталоге “migration-version” самого приложения нашел файл 1.0.0 думаю это версия psr или pesl

Версию РНР проще в первой строке смотреть )
Например

php -v
PHP 7.3.19-1+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Jun 12 2020 07:49:10) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright ..........

То есть тут 7.3.

Так apt list --installed не обновляет ничего, только выводит установленные.