We have moved our forum to GitHub Discussions. For questions about Phalcon v3/v4/v5 you can visit here and for Phalcon v6 here.

packagecloud.io repositories is pointless

Since v4 depends on "PSR PHP extension" repo is pointless. You should pack PSR-extension and add it as depends for phalcon4 package.

Question: Phalcon depends on mbstring, pdo, mysql, json, gd, imagic, apc, memcached, etc. Should we pack all them into DEB/PRM packages? In other hand there is no official PSR package thus we can't add it to depends section on Phalcon package build stage. IMO It is PSR maintainr responsibility to create package for PSR extension. As for now the better way to install PSR extension is:

pecl install psr
edited Jun '19

Question: Phalcon depends on mbstring, pdo, mysql, json, gd, imagic, apc, memcached, etc. Should we pack all them into DEB/PRM packages?

All packages you wrote is optional for phalcon and must be added as recomended\optional dependencies.

But If phalcon don't work without it and it is not standard package in distributive YES you should pack them all.

In other hand there is no official PSR package thus we can't add it to depends section on Phalcon package build stage. IMO It is PSR maintainr responsibility to create package for PSR extension.

Phalcon developers do phalcon depends on PSR extension so they should add this dependency in debian package. And next they can deliver package for PSR or Not doing this, then phalcon package can't be installed. It is will be much better against install and not working like now.

As for now the better way to install PSR extension is: pecl install psr

Worst way. There is only two choices: developers doing packages for distr and it is working or not doing anything and it is better then doing broken package.

edited Jan '20

The PSR extension is required only by components that are utilizing those interfaces. Examples: Logger, Http\Message etc. If you install Phalcon and never use those packages then it works just fine.

Packaging someone else's code as Serghei mentioned is always a bad idea because we will have to maintain the "link" between the two extensions.

Sorry but I do not see a problem with issuing

pecl install psr

before Phalcon to be such a great issue.

The PSR extension is required only by components that are utilizing those interfaces. Examples: Logger, Http\Message etc. If you install Phalcon and never use those packages then it works just fine.

You are mistaken. Php7.3+Phalcon4 is not working. When php loads phalcon.so it is core dump with somethings like "PHP Fatal error: Class 'psr\http\message\streaminterface' not found in Unknown on line 0 Segmentation fault".

Packaging someone else's code as Serghei mentioned is always a bad idea because we will have to maintain the "link" between the two extensions.

It is was choice before hardly depend on not common extension.

Sorry but I do not see a problem with issuging

Problem is Sergey provide now package which break down php. If I compiling something I also can compile phalcon.so too....

You are mistaken. Php7.3+Phalcon4 is not working. When php loads phalcon.so it is core dump with somethings like "PHP Fatal error: Class 'psr\http\message\streaminterface' not found in Unknown on line 0 Segmentation fault".

I stand corrected then

It is was choice before hardly depend on not common extension.

PSR has been a standard for years now. The difference is that any other framework just uses composer which in turn pulls the package down and the developer does not even notice the package. Since Phalcon is an extension it will nto work with a composer based installation of PSR and thus PSR has to be loaded as an extension before that.

The same thing happens with PDO. PDO has to be loaded before Phalcon and that has been a requirement since v2. Honestly I do not see the problem here. The packagist packages offered do not come with PDO either. The developer installs PDO before Phalcon and the same thing will happen in v4 with PSR.

edited Jun '19

You are mistaken. Php7.3+Phalcon4 is not working. When php loads phalcon.so it is core dump with somethings like "PHP Fatal error: Class 'psr\http\message\streaminterface' not found in Unknown on line 0 Segmentation fault".

I stand corrected then

It is was choice before hardly depend on not common extension.

PSR has been a standard for years now.

I meant not PSR I mean not commonly used php extension.

The difference is that any other framework just uses composer which in turn pulls the package down and the developer does not even notice the package. Since Phalcon is an extension it will nto work with a composer based installation of PSR and thus PSR has to be loaded as an extension before that.

So this is work for distro package manager.

The same thing happens with PDO. PDO has to be loaded before Phalcon and that has been a requirement since v2.

PDO extension is standart package in any distro with php. But if php core dumps when load phalcon.so without pdo.so it should be in package depends too.

Honestly I do not see the problem here. The packagist packages offered do not come with PDO either.

PDO extension available in distro.

The developer installs PDO before Phalcon and the same thing will happen in v4 with PSR.

Yes install PDO using distro package manager and mainly it is install not for phalcon only. And as I say if phalcon coredumped when apt-get install phalcon then should install pdo as dependency too if it steel not installed...

I understand where you are coming from and hope that I made it clear what our approach is.

If you feel that this process can be enhanced or become better, by all means we welcome pull requests.