Why is a very good PHP infrastructure - Qcodo (or Qcubed - its branch) - so unpopular?

I wonder why this structure (QCodo) is almost forgotten and completely unpopular.

I started using it a few years ago, and this is only the thing that keeps me with PHP. Yes ... its development is stuck (which is why there is now a more active Qcubed branch), but it is still a very good piece of software.

Main advantages:

  • Event driven (something like asp.net) without spaghetti code
  • Powerful code generation
  • good orm
  • follows DRY
  • very simple AJAX support.
  • fun to write

Since then, I wanted to be trendy and tested Django, but I can’t write a normal web-based application based on requests (it just doesn’t feel good).

Do not believe? chess.com is written with it, and, of course, there are many others.

My 2 questions:

  • Have you heard about this (PHP people)?
  • If you use it, what do you think about it (show us examples of your work)

thanks

+6
event-handling php frameworks orm code-generation
source share
24 answers
  • The creator (s) of Qcodo never promoted the framework and thus did not generate a large amount. I believe that they created it mainly for their own use, but also offered it to others. This is awesome if you are looking for a code generating framework. He has a learning curve. Therefore, in order to maximize its use, it is better to spend time studying examples.

  • Qcodo really has not been actively developing for more than a year, and there seems to be little chance of continuing Qcodo in the near future. Qcodo seems to die a slow death.

  • Qcubed, a subsidiary of Qcodo, is under active development and has been operating since November 2008. It was created by Qcodo users who are disappointed by the lack of Qcodo progress. If you are just starting out, start here, not with Qcodo. But use the Qcodo forums to look for problems / questions you may have.

Qcodo and Qcubed are a fantastic framework. Do not devalue or underestimate them just because you have not heard of them.

+17
source share

I have been using PHP for many years, for many years and have never heard of it.

+33
source share

Emulating ASP.NET or Wicket in PHP is not very good. Moreover, the code style does not look very good.

$this->btnSavePage = new QButton($this); $this->btnSavePage->Text = "Save"; $this->btnSavePage->Visible = false; $this->btnCancelEdit = new QButton($this); $this->btnCancelEdit->Text = "Cancel"; $this->btnCancelEdit->Visible = false; 

Hungarian notation? OH MY GOD. Do I need to create a large object to create a button? Heavy weight for me.

+9
source share

Qcubed and Qcodo are used by us in three projects, and these are the cleanest and easiest to maintain projects that we have ever had! This is great material and easy to understand. Just go into the code, you won’t need a lot of tutorials.

The Qcubed community is currently much stronger, so you can register on the Qcodo forum for answers to major problems, but post on the Qcubed forum.

We will continue to stay with this fantastic product and community!

Regards, Tronix

http://www.twitter.com/qcodo

+5
source share

Yes, we use it on Chess.com, and overall they are very satisfied. This can be problematic when trying to figure out how and where to store all of these QFormStates when you get more than a million page views per day. Each page view is its own QFormState! We solved this by putting all of them in memcache! He has a little learning curve, but as soon as you know this, you no longer need documentation. I actually completely abandoned the use of QQ and used all custom sql in our ORM files. QQ is simply not efficient enough to perform highly optimized queries, and highly tuned queries are more important than database abstraction. In the end, the site must function and be fast. Here is one example of a static ORM method in our User class for loading a random user from the database (we used it to display a random "user searchlight" on the page of our participants). Notice how it uses a working database, not our wizard (user-created function). It also uses memcache so that a randomized user changes every 10 minutes (600 seconds).

  public static function LoadRandom ($ blnAvatarRequired = true, $ blnForce = false) {
   $ strCacheKey = MyMemcache :: QueryToKey ("User-> LoadRandom ()");
   if ($ blnForce || false === ($ objUser = MyMemcache :: G () -> GetQuery ($ strCacheKey))) {
     $ objDatabase = QApplication :: GetSlaveDbConnection ();

     $ DaysAgo = new QDateTime (QDateTime :: Now);
     $ DaysAgo-> AddDays (-10);  // make sure this is an active member

     // Setup the SQL Query
     $ strAvatarReq = $ blnAvatarRequired?  'and u.has_avatar': '';
     $ strQuery = "
       select
         u. *
       from
         user u
       where
         u.is_enabled = 1 and
         u.create_date> '$ DaysAgo'
         $ strAvatarReq
       order by
         rand ()
       limit
         one
     ";

     // Perform the Query and Instantiate the Result
     $ objDbResult = $ objDatabase-> Query ($ strQuery);
     $ objUser = User :: InstantiateDbRow ($ objDbResult-> GetNextRow ());
     MyMemcache :: G () -> SetQuery ($ strCacheKey, $ objUser, null, 600);
   }

   return $ objUser;
 }
+5
source share

No, I never heard of that.

The main ones that I heard about are Zend, CakePHP, Symfony, Code Igniter and one or two others, I can’t recall the names right away.

+4
source share

I have been working on PHP for 3 years and have never heard of it. Ask someone to name the PHP frameworks and you will get the usual suspects: Code Igniter, Cake, Zend, etc.

Guess that QCodo developers need to work a bit on their marketing!

+2
source share

I have been using QCodo for 2 years and now I am with QCubed.

This is a good way to develop and support web applications, as well as the easiest way to deploy code and test it. Remember that QCubed is now growing in adoption, and that’s good for the entire QCodo community.

I think that frameworks can save a lot of development time, but many cases are not recommended for all your web development.

+2
source share

I started using it two years ago. About:

  • code generation from the database
  • Object Oriented Object ORM
  • simple use ajax

Minuses:

  • The qcubed community is not so adept at running a project with new good ideas.
  • the new code is not at Mike Ho's level.
  • errors in qforms state, qcodo / qcubed forms.
  • not popular.
  • they don’t want to go ahead and use DDD and forward engineering.
  • forms only work with js enabled.
  • written in PHP.
  • The new plugin system is poorly designed.

At the moment, Grails seems to be the best DDD-oriented environment with the ability to use any existing Java code, a good template library, the ability to use different js frameworks built on Hibernate and Spring. With Grails, you can write a simple web application or a financial application.

I hope that I will not use PHP in the future, but since I know Qcubed / Qcodo, I will use it if necessary. For beginners, I recommend Symfony, larger communities, feature-rich mre plugins, it has a safer future.

Update:

  • No data migration, no way to track database schema changes.
  • No schema reflecting which tables are generated
  • It is not intended for real TDD, checking models, controllers and views is not easy. They simply added a test framework to an unfriendly test web infrastructure.
  • QForms is still listening and may lose status when using multiple controls and trigger an Ajax error and block the application.
  • ORM is very boring to use in the long run (lots of chat / redundant code) and cannot be tested with a tool like the Rails console, after all, it takes less time to use pure SQL and validate it with phpMyAdmin.
  • Errors in ORM too, sometimes I get a string when I declare this field as an integer (code-generated requests).
  • There is no front controller and routing system, but the structure is inside the public path! Plugins are also installed in a public way.
  • A strange directory structure that is not like other MVC structures, and they believe that M means ORM only instead of a model.
  • not a link_to tag like Rails or Symfony and many other tags.
  • Over complex meta-controls that are only useful for wasting time.
  • A scaffold-oriented structure, when not used a lot in Rails, since most developers use a user-centered design rather than a data-centric one.
  • The views are full of object-> render and JS, and custom controls are a pain that needs to be customized, and instead of staying inside the template, they are inside a class with a logical session .. that's it.
  • It does not work with PHP 5.3 (not tested, but must be enabled) and Quercus.
  • Rails / Grails has tons of plugins that do it all.

I could continue, but I think you understand this idea. Just learn Rails or Grails for a few months, then let me know what you think.

I am moving my Qcodo project to Rails, and I have a great environment, a nice community, and most of the innovations on the Internet are Ruby and Rails. Rails has been voted several times as the best tool for web development and is the only one that can replace Java or .net

+2
source share

While I heard about it (Qcodo ... not this plug), I never studied its use. There are tons of frames and only such a need. PR and mindshare are extremely important in this situation, and Qcodo has never been. Now that I have settled in a handful, I have no time and had no desire to begin studying the new structure.

+1
source share

I have been using QCodo since beta 2, and now I am the main sponsor of QCubed, so yes, I heard about it.

What initially attracted me to the structure was the creation of code. I came from asp.net and a code editor and was very happy to find a framework that gave me both the event-oriented approach of asp.net and the code generation.

I also like that all this is pure OO PHP, which means that I don’t need to learn a new language to develop my PHP application, and setting up any aspect of the structure that does not behave the way I want is simple.

All this led to the fact that we were able to create an easy-to-maintain and reliable training management system that we sold and accepted for numerous companies from the Fortune 500 list.

There are some disadvantages, such as overhead during the execution of the ORM approach, but the readability and clean layout of the code make it possible to more easily optimize other aspects of the application and significantly reduce development time and the number of errors made.

Since QCubed is a community-based project, anyone can post tickets, suggest improvements or discuss changes, it shows very clearly where the project is going and is very open for constructive feedback.

In defense of some of the negative things said here, I will simply point out that tickets to most of the alleged “problems” simply never were created. And I urge everyone who comes across any of them to create a ticket for us to see http://qcu.be .

+1
source share

I have been using QCodo / QCubed for 1.5 years. It started with my own structure, which at some point seemed dirty. This is when I started looking for a more mature structure. Fortunately, I found QCodo. Since then, I have not even thought about anything else. The structure is so flexible and powerful that you can do whatever you want with it.

I had almost no experience with event driven architecture. So, the beginning was a bit complicated, because the available documentation was scarce. But the community itself is very active, and you probably get an answer to your questions about newcomers within 1-2 days (sometimes even in hours). But at present, the level of documentation is better, and the community is even more active :)

Nothing can complain. And if I have some problems / suggestions, I will try to discuss them with the main developers. Whimpering about things without constructive discussion - lame IMHO.

I used QCodo / QCubed for 3-4 successful projects. The more I use it, the more I like it :) And also, I try to help develop an even better structure when I have free time. And I can say that I had more than 10 people whom I convinced to start using QC now;) And I hope that there will be many more.

QCubed is completely rocky!

+1
source share

This Swim log uses it mySwimLog

+1
source share

OK, here is what I want to tell about this Qcodo / Qcubed thing:

  • Its brilliant. I just have no words about how cool it is. Do you say CodeIgniter? Symfony I say Qcubed.

It was when I wanted to start work on the project that I was working on, I studied all this and through a Wikipedia article, landed on the Qcodo website, and then on Qcubed ... and I was surprised.

The features that I liked the most:

  • No SQL queries. Of course, this can be done, but most things will take care!
  • Merging templates with core functionality.
  • Creating custom controls is part of CAKE (and not CAKEPHP).
  • Fully even controllable. Saving states is like ... "where does this happen?"
  • NO TRAINING CURVE. Just look at Yii or Symfony, and then go to the Qcubed examples. Its much easier compared to others.
  • Full AJAX support. I like it.
  • No JavaScripting. Ask him to do something like a javascript action, this is done using javascript. Change one word to "QAjaxAction" and it goes to ajax. Change again, reloading the page. What more do you want?
  • Autocomplete, typecasting (both automatic and manual control), and what not!
  • Native editing for almost anything!

Yes, there are a few cherries for ice cream when it comes to Yii. But I think Qcodo has more inside.

You say authentication support? Well, I created one to integrate with Qcubed in 1 day. He saved a week from headaches with other frames. Qcubed.

Yes, I hate its slow development. But I think it is close to completion! (maybe I know too few things, but everything I can imagine seems to be solved through Qcubed).

I would like this to be more popular ... I would save me a week of searching before landing on their pages.

+1
source share

Never heard of that.
Run PHP for 4 years

0
source share
0
source share

I also came from dotNet / Codesmith. When I took on a project that wanted to translate dotNet into PHP, I looked for a structure that could best mimic how the original application logic was created. What I discovered was either a bloated framework or frameworks that did not fully meet the requirements of the projects.

I accidentally discovered QCodo while researching using the MyGeneration tool to generate PHP code. Since then, I have not looked back. Ease of use, the ability to quickly create complex applications and a true approach OO QCodo now uses QCubed, making it the best foundation for my goals.

0
source share

I have been using QCodo, ZCodo for a long time and now QCubed.

I actually chose it as a replacement for CakePHP, which at the time of my need was not mature enough to do what I wanted.

I am very pleased with this as a wireframe; he abstracts things enough, but not too much that you lose sight of programming.

I plan to use it for any development project that I am responsible for in the future, and I expect QCubed to become the best infrastructure supported by the PHP5 community.

0
source share

The gradual reason is that popularity and success are usually not related to what is technically best. I am sure that any technician can come up with many examples. There are many things that can contribute to mediocre decisions, such as marketing, first-user advantage, to be better in some area that attracts people's attention, is used in some high-end applications, or just luck.

Another reason is that what seems technically the best to you may not seem to be doing something else.

0
source share

I think QCubed is great and mainly because of how you can use Ajax (you don't need t20 to use tQuery).

One very useful document: http://www.qcodo.com/demos/QcodoClassLibrary.pdf

0
source share

I chose QCodo 4 years ago to develop our product. I never regretted - now we have 3 developers, and any solution other than OOP will not work. We installed almost 50 clients with it - on Apache, IIS, my SQL and SQLServer platforms, Linux or W2003. F The design is brilliant, the code generation is excellent, and it is very easy to develop, extend and maintain. I can not read any other code now ...

Yes, marketing is pretty bad, and the project was used to depend only on the creator (Mike Ho). All of this has moved to Git lately, and marketing should be better soon. And now Mike Ho is back !!!

0
source share

I used it in several projects related to the removal of Flash, but I use only ORM as part of the framework, since I do not like EDP things like .NET. The flow does not seem to be correct for a stateless website. It is great if ORM can be released as a separate component.

0
source share
  • qcubed community is not so good at running a project with new good ideas

    Nonsense

  • the new code is not at Mike Ho's level.

    Nonsense

  • errors in qforms state, qcodo / qcubed forms.

    ??

  • not popular.

    So what

  • they don’t want to go ahead and use DSL and advanced technology.

    Your point Are all the frameworks that do not want to go your way wrong? I would not want your suggestions to be made

  • forms only work with js enabled.

    You have to joke right? If users do not have JS, then they are in the Stone Age ...

  • written in PHP.

    No comments

  • The new plugin system is poorly designed.

    Based on what you say? I would also say that this is ridiculous.

It is clear that there is some kind of hidden agenda with this poster ... I also carefully looked at Symphony - and I would go with QCubed over Symphony every time. For large applications or small

-2
source share
  • I have never heard of this.
  • I have not used it.
-2
source share

All Articles