Php phalcon volt, "Wrong number of parameters"

: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 не обновляет ничего, только выводит установленные.

Так что, проблема решилась?
Пробовали понизить версию phalcon?
А то столкнулся с такой же ошибкой и не знаю куда копать.

Добрый день. Ну проблема решилась частично. Она заключалась не только в понижении версии phalcon, в этом частично. После установки пониженной версии ошибка [“Wrong number of parameters”] пропала и засветились уже другие гадости, но php начала отзываться… вообщем [“Wrong number of parameters”] это проблема окружения … потом не было времени этим заниматься и только сегодня сижу лопачу окружение… сейчас с базой данных проблема…

На локальной машине?

Лучше не опенсервер, а пытаться максимально повторить реальный сервер: ОС, версии ПО, … Благо сейчас это легко с помощью Докера и т.п. Ну или хотя бы просто в обычной виртуальной машине (VirtualBox, VMWare Player, …) всё поставить самому.

Да все на локалке пытаюсь запустить и разобраться, потому что сейчас одно неверное движение на боевом сервере и все ляжет, а программа в пром. работе… С базой тоже частично порешал, вытащил с боевого загрузил на локалку, ошибка пропала. Но вопросов много осталось, тут новые ошибки повсплывали и возможно проблема не только с общим окружением но и с шаблонизатором volt.
Сейчас ошибки повыскакивали, что мол нет должного эфекта от того… того… и того …типа : Warning : The use statement with non-compound name ‘Users’ has no effect in F:\programming\SOFT\OpenServer\domains\to16\app\library\Auth.php on line 4

Warning : The use statement with non-compound name ‘Roles’ has no effect in F:\programming\SOFT\OpenServer\domains\to16\app\library\Acl.php on line 4

Warning : The use statement with non-compound name ‘Permissions’ has no effect in F:\programming\SOFT\OpenServer\domains\to16\app\library\Acl.php on line 4

Warning : The use statement with non-compound name ‘Modules’ has no effect in F:\programming\SOFT\OpenServer\domains\to16\app\library\Acl.php on line 4

Warning : touch(): Unable to create file F:\programming\SOFT\OpenServer\domains\to16\app\configapp/cache/acl/data.txt because No such file or directory in F:\programming\SOFT\OpenServer\domains\to16\app\library\Acl.php on line 197

Warning : touch(): Unable to create file F:\programming\SOFT\OpenServer\domains\to16\app\configapp/cache/acl/data.txt because No such file or directory in F:\programming\SOFT\OpenServer\domains\to16\app\library\Acl.php on line 197

Fatal error : Uncaught Error: Class ‘PhpFunctionExtension’ not found in F:\programming\SOFT\OpenServer\domains\to16\app\config\services.php:49 Stack trace: #0 [internal function]: Closure->{closure}(Object(Phalcon\Mvc\View), Object(Phalcon\Di\FactoryDefault)) #1 [internal function]: Phalcon\Mvc\View->_loadTemplateEngines() #2 [internal function]: Phalcon\Mvc\View->render(‘users’, ‘login’) #3 F:\programming\SOFT\OpenServer\domains\to16\public\index.php(38): Phalcon\Mvc\Application->handle() #4 {main} thrown in F:\programming\SOFT\OpenServer\domains\to16\app\config\services.php on line 49

А как phalcon установлен? Может быть не та версия, или как-то не так установлен и не находит файлы.

Честно сказать я новичок в этом всем и никогда этим не занимался кроме статичных html страниц… так что мне очень тяжко, но я иду, дело принципа…)
Поставил Phalcon v 3.4… в Опенсервер на винду 64 -той архитектуры, + PSR 0.7.0 с учетом версии php 7.1… возможно что то и не так, если я еще чего то не понимаю…
Однако я подключил в коде php ini_set(‘error_reporting’, E_ALL);, но не увидел ссылку на phlcon not found или что то подобное… пока что я в тупике… мне кажется что что то с шаблонизацией… или psr или perl… ХЗ )
Сюда и писал , думал что помогут… задрался иностранные текста переводить, но и там на иносайтах не фак _Ю, а только фак OFF/
Теперь понимаю когда говорят, что легче все сначала написать чем в чьем то разобраться… в чьем то разобраться и поправить это высший пилотаж походу…

А на сервере какая? Может там 2.*

В общем я бы в любом случае советовал бы начать с

как минимум чтобы еще винда и опенсервер не добавляли лишних проблем.

Вариант с виртуальной машиной возможно оптимальнее для новичка потому что заодно повысится понимание работы с линуксами/серверами )


Еще как вариант можно попробовать клонировать сервер на другой новый сервер, и работать там. Если VPS, то это должно быть легко в пару кликов в панели управления хостера.
Потом можно будет даже просто переключить домен на новый сервер поменяв IP в DNS записях, что уменьшит время простоя и риск сломать что-то при развертывании.

В IDE типа PhpStorm есть фичи для работы с проектом на удаленном сервере, так что даже удобство разработки не должно сильно пострадать.

Спасибо за подсказку с клонированием хороший вариант… Но руки трусятся боевой уложить )… Надо подробнее почитать по поводу клонирования и найти подробные инструкции , я такого еще просто не делал…

А указанная вами софтина (Докер и т.п.], VirtualBox, VMWare Player, …) она бесплатная free ? Про докер что то слышал но пока даже не читал)

Докер и виртуальные машины это два разных варианта.

Да, бесплатные, кроме VMWare Player — он бесплатен только для некоммерческого использования. Если использование коммерческое — VirtualBox вместо него, там вроде только Extension pack с некоторыми доп. удобствами не бесплатен для коммерческого использования.