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

My current situation with Phalcon - Lost on coworkers...

So people at my office started to "try Phalcon" since I talked about it so much, but it consistently fell apart when the docs weren't clear and they didn't have a working out of the box "stacK' like Symfony and Laravel has normally. Yes I explained Dev Tools, and showed them creating a project and what not, but they didn't know which way to build.

The part about Phalcon being a platform to build custom solutions seems to be over their head and they just wanted to do what everyone else does. They also were not too keen on activity on updates and time in between them, again compared to the other popular frameworks. I too am hoping Phalcon updates still keep coming and that the main devs aren't giving up.

With that said, I have laid out a modified module version that I am going to contiue to work on and put up at github at some point when the pieces are in place (basic auth, api calls, etc). I am now a lone wolf that still wants to work with Phalcon in a company that wants work with other frameworks -- even with their shitty ass performance.



85.5k

https://github.com/phalcon/mvc

honestly phalcon was my first framework that i get in depth with, and its just easy.

for me Laravel, zend framework are like spaceships , eveyrthing is super complicated for me to try to udnerstand. I do not understand why people say laravel is easy, do they judge by the face there is a dev tools that creates you a module, that i create myself with copy / paste probably faster than you logging into ssh and executing an alias command ? Or maybe people are not like me and they dont give a fuck how a "thing" works.
Digging into a gaizlion milion trilion composer dependendences isn't an option for me, and that's why i love phalcon. No deps, no extra crap. Just the frameork itself.

here is a recent boilerplate https://github.com/chaban/phasty-micro that you can checkout.

Best of luck

I too find the lack of 100000 files refreshing and the trail of tears it creates putting the pieces together in Laravel/Symfony.

Your devs are only able to use some framework, tools or popular things like a no dev understanding a little in computing could do too easily ... they don't understand what they're doing and don't care, think they're not real devs in fact can see more and more like that ...
So Phalcon is not for them, it let the possibility for you to create your own struct corresponding to your needs, devtools is just an example of what you can do but it's easy for you to create your own . I don't like devtools too so I've made mine (still a lot of work to do on documentation) :
https://github.com/corentin-begne/phalconTool

I share feelings with all of you guys here - it's pretty same story here. Many devs simply won't care about inner workings, they only care about tools which will help them to be more productive and get their job done. And then they go home.

Often Symfony fans will tell you they don't care about performance at all - they'll advise to just buy a stronger server with more resources and - for them, problem solved :)

So yeah - it's tough to explain those folks anything.

What Phalcon project lacks is better documentation, and that's area where all of us should contribude as much as we can.



8.3k
edited Apr '18

I'm not surprised, because Phalcon isn't a good framework. On the beginning You have to solve problems like:

  • error handling
  • configuration (PHP files are obsolete, using YML is problematic)
  • classes loading, namespaces
  • environments
  • dev tools (for instance list of DB queries)
  • db workflow (fixtures data, migrations, reverse engeeniring)
  • translations
  • security
  • frontend components

You have to spend a lot of time to create only a pure frame and to solve problems were solved in other frameworks decades ago Furthermore You have to deal with poor components like "ORM" or forms, You see old-fashioned architecture, bugs or weird bahaviour. I work with Phalcon but I'm not going to recommend it. Sorry.



85.5k

Man, there are like 9999 things that a wrong with your comment, i will just pick 1 simple one - frontend components

why would i need a php framework to handle my frontend components. That is just wrong on so many levels ...

I'm not surprised, because Phalcon isn't a good framework. On the beginning You have to solve problems like:

  • error handling
  • configuration (PHP files are obsolete, using YML is problematic)
  • classes loading, namespaces
  • environments
  • dev tools (for instance list of DB queries)
  • db workflow (fixtures data, migrations, reverse engeeniring)
  • translations
  • security
  • frontend components

You have to spend a lot of time to create only a pure frame and to solve problems were solved in other frameworks decades ago Furthermore You have to deal with poor components like "ORM" or forms, You see old-fashioned architecture, bugs or weird bahaviour. I work with Phalcon but I'm not going to recommend it. Sorry.



8.3k

why would i need a php framework to handle my frontend components

For many reasons:

  • to avoid CTRL+F5 after deployment in dev env
  • to avoid 9999 requests in prod env
  • to prevent loading unnecessary code
  • to simplify deployment process
  • to simplify adding resources in templates/controllers etc.
  • to unify everything in elegant way (one configuration, commands etc.)


85.5k
edited Apr '18
to avoid CTRL+F5 after deployment in dev env - pehaps assets cache -> its 5 min thing you need to implement yourself
to avoid 9999 requests in prod env -> i assume assets combine and minify -> gulp, webpack, etc.. i dont have problems with that
to prevent loading unnecessary code -> ?! i could be using the best framework in the entire galaxy, yet i still get to use whatever slow functions i want ?  
to simplify deployment process -> my deployment process is git push - git pull and its working swell
to simplify adding resources in templates/controllers etc. -> its like this->assets->addJs ? how hard is that
to unify everything in elegant way (one configuration, commands etc.) -> elegant is a stretchy thing, it could be elegant for you and your company, but it can be a sack of sh*t for another company. Also also, i can mess any project with any framework without any problems. 

All the "valid" problems you have described are like 5 mins to do, i really dont see the problem ?
edited Apr '18

Phalcon does have Migrations, Security, etc..

Also was confused on your "configuration", you can use Json, yaml, php arrays, and ini files... you can have individual variations in each module and/or a single on in a non module application... not sure how you grab your configurations on your favorite framework that isn't Phalcon, but I am sure it is slow AF figuring itself out..

I can just assume, flexibility scares you

Phalcon is perhaps better thought of as a right toolset rather than a framework. If a developer is expecting a framework that already does everything and I just need to plug in my app-specific content, then yeah - Phalcon isn't a good framework.

If you're looking to actually BUILD something, Phalcon gives you all the tools you need. Take translation for example. Yes, I have to do work to set it up. But that work isn't being done unless I need it to be. It's not being added to my project needlessly. The same with code for automatically generating form elements, or a complicated ACL.

I've built apps that don't need any of that, and my app is a lot more agile because the server doesn't need to scaffold all that useless stuff. I'd much rather take time to add functionality to my app and have it run as lean as I can, than have to strip stuff out.



8.3k
edited Apr '18

All the "valid" problems you have described are like 5 mins to do

I believe when I see :)

Phalcon does have Migrations, Security, etc..

Phalcon doesn't contain security, You have to write firewall, authorization etc. Yourself, Phalcon provides wrapper for session and encoder. Migrations are like:

                    new Column(
                        'id',
                        [
                            'type'          => Column::TYPE_INTEGER,
                            'size'          => 10,
                            'unsigned'      => true,
                            'notNull'       => true,
                            'autoIncrement' => true,
                            'first'         => true,
                        ]
                    ),

are not helpful, I can't generate diff between db and models, please see how it looks in Doctrine for instance.

you can use Json, yaml, php arrays, and ini files

Seriously? You have to do a lot of afford to rewrite config, loader, router, services and finally You discover that config.php is required by other components - so good luck.

flexibility scares you

Yep, so due this "flexibility" form messages are spoiled and connect form fields with model validation is piece of cake, isn't it? I don't care about flexibility, but need solid functionality.

Phalcon is perhaps better thought of as a right toolset rather than a framework

Good point Dylan. But is an advantage? To my thinking not, because You can always create Your own frame based on components (even from different frameworks) but You can't in few minutes set up all app. Standard is another problem - when I worked for company with full scale fw, apps seemed to be identical, in Phalcon each app is different. Companies prefer standards to decrease maintenance costs. Due this reasons, Phalcon can't be widely used.

Phalcon is perhaps better thought of as a right toolset rather than a framework

Good point Dylan. But is an advantage? To my thinking not, because You can always create Your own frame based on components (even from different frameworks) but You can't in few minutes set up all app.

Valid point. I don't think Phalcon is intended to empower you to build an app in minutes. It's intended to build a lean app. If productivity is the most important thing to you - sure, look to Laravel. If application efficiency is the most important to you, Phalcon probably won't be beat.

And as a side note. Coming to a Phalcon forum to say how bad Phalcon is, is not going to convince anyone of your point ;)



8.3k

It's intended to build a lean app

I understand, but even in lean apps You want to use for instance namespaces or error handler (I have to use component from other framework), instead of adding classes and use it You have to first read tutorial: https://olddocs.phalcon.io/en/3.0.0/reference/namespaces.html and despite of that You can't avoid problems like: https://forum.phalcon.io/discussion/17655/namespaces-vs-app-in-client-mode https://forum.phalcon.io/discussion/15801/phalconcliconsole-and-namespace-support

It's not my point to convince You, but Phalcon community to convince "coworkers" to use this stuff, what would be problematic when first result would be "Access to undeclared static property: Phalcon\Di::$_default "

Furthermore, I complained a lot about Zend, Symfony, CI, Spring and others - but I don't see any sense to grumble about other frameworks here :) All developers who I know gave Phalcon up and they have similar opinion to mine. I can't recommend Phalcon as long as base functionality isn't rock solid - thats my point guys.

edited Apr '18

There is a command to register namespaces, you can use any namespaces you want to use. Every framework has to register namespaces in some manner, because PHP has to know.. so again, not sure what exactly your hangup is on namespaces. (Composer does this with the Autoload.php etc)

I have like two commands

$loader = new \Phalcon\Loader();
$loader->registerNamespaces(
    $namespaces
);

Seriously? You have to do a lot of afford to rewrite config, loader, router, services and finally You discover that config.php is required by other components - so good luck.

Again, not sure how you are using it, tools are there, set up a basic way you like to do it and go..

Really all of this sounds like you simply don't want to experiment with items because it wasn't "out of the box" in some format.



8.3k

you simply don't want to experiment

Because noone simply pays for it.

it wasn't "out of the box"

I see a little difference between something thin or not sophisticated and something what looks like provisional workaround (probably because someone didn't presume namespaces few years ago). Please see Slim or other micro-frameworks. So Your conclusion is, that Phalcon needs experimental attitude and isn't out of the box so it's a tool for ... masochists? :)

Thanks for making a response without mentioning Namespaces.