Hi there!
First of all, I cast Daniel and JNeuhoff into this thread to get discussion on following topic. Other users are free to post their thoughts, but I mainly want that Daniel and JNeuhoff to agree among themselves. So, let's start.
What do you all think about integration of Override Engine into OpenCart core?
I think, it would be very nice for extension writing, since it will add possibility to avoid vQmod hacks (with dirty tricks, xml (bad format for patches, IMHO), frequent mistakes and, in addition, not so small overhead, as it should be). And it will give possibility to just extend functions, which needs to be redefined for exact addon, instead of vQmod tricking.
I'm sure that this thing much more elegant way than vQmod. So, it can be on of the killer features of OpenCart in the future, if JNeuhoff (as a member of community of Engine's developers) will agree to develop it as a part of a core, and if Daniel will agree to include it.
Although, I already talked with JNeuhoff and he said, that he has no objections (if I don't misunderstand him), but I can't get answer, if he is agree to develop in inside core, and not just publish it on extensions page.
--
Anyway, it is just my opinion, so let's discuss on that.
I agree that the OpenCart Override Engine presents a much better approach than using vQmod for extending OpenCart. The vQmod is a file patching system and as such it is only reliable if the original files are untouched. I will not say that the Override Engine is the ideal perfect solution, but I will say that it is a step in the right direction and I would like to it see integrated into the OpenCart. Providing a real solution that enables developers to extend OpenCart using object oriented techniques would greatly strengthen the architecture and assure that OpenCart can survive as a viable shopping cart solution in the future.
The current approach of depending on "live file patching” via vQmod will make it increasing difficult for core developers to enhance the system without breaking lots of external components. This will only get worse as OpenCart matures. What is needed is to nip this in the bud quickly by removing the need for patching the system. The only way to do this is to provide some kind of plug-in architecture that provides the appropriate “hooks” for third party developers. Fortunately, OpenCart is already written using object oriented techniques so only some small enhancements are needed instead of a fork or major rewrite. I believe the existing Override Engine can be the initial step toward a more robust plugin architecture.
I worry that as the OpenCart community becomes increasing dependent on vQmod, the incentive to improve the architecture will greatly diminish. No one will want to risk the chaos that comes from the mass breakage that just a single source code change could have. I sincerely hope that I did not hurt the feelings of anyone who has invested significant time into using vQmod. I will also say that while I don’t believe vQmod is a good way to extend OpenCart, it is a useful tool in it’s own right. After all, there will always be a need to apply patches and for this the vQmod is an excellent tool. In fact, I’d like to see a front end for vQmod that diffs two files and creates the XML automatically and an option to permanently modify the destination files. Then it could be used to temporarily try out changes before pushing them in place.
I would like to see the current Override Engine added to the OpenCart core and taken several steps further by increasing the number of protected member “event hook” functions exposed by the major classes. Each significant operation should have hooks provided. However, this does require careful though and some restraint. Best to start small and add more hooks as time goes on.
I’ll shut up now...
The current approach of depending on "live file patching” via vQmod will make it increasing difficult for core developers to enhance the system without breaking lots of external components. This will only get worse as OpenCart matures. What is needed is to nip this in the bud quickly by removing the need for patching the system. The only way to do this is to provide some kind of plug-in architecture that provides the appropriate “hooks” for third party developers. Fortunately, OpenCart is already written using object oriented techniques so only some small enhancements are needed instead of a fork or major rewrite. I believe the existing Override Engine can be the initial step toward a more robust plugin architecture.
I worry that as the OpenCart community becomes increasing dependent on vQmod, the incentive to improve the architecture will greatly diminish. No one will want to risk the chaos that comes from the mass breakage that just a single source code change could have. I sincerely hope that I did not hurt the feelings of anyone who has invested significant time into using vQmod. I will also say that while I don’t believe vQmod is a good way to extend OpenCart, it is a useful tool in it’s own right. After all, there will always be a need to apply patches and for this the vQmod is an excellent tool. In fact, I’d like to see a front end for vQmod that diffs two files and creates the XML automatically and an option to permanently modify the destination files. Then it could be used to temporarily try out changes before pushing them in place.
I would like to see the current Override Engine added to the OpenCart core and taken several steps further by increasing the number of protected member “event hook” functions exposed by the major classes. Each significant operation should have hooks provided. However, this does require careful though and some restraint. Best to start small and add more hooks as time goes on.
I’ll shut up now...

The Override Engine is released under the GPLv3 license, so feel free to incorporate it into OpenCart if you wish, as part of the OpenCart core files, or as a separate addon.
Export/Import Tool * SpamBot Buster * Unused Images Manager * Instant Option Price Calculator * Number Option * Google Tag Manager * Survey Plus * OpenTwig
Who is online
Users browsing this forum: No registered users and 3 guests