Hi Kristian,
Good questions. How do you document the changes between versions? Maybe we should start thinking about a profound version-capable module-system? Maybe a kind of repository-based thing. This would be pleasing for both - users and developers. What do you do with legacy data? This also might be handled by a version-capable repo-system? What to do if the update fails? maybe a mandatory clean.sql for each module that removes all newly added sql? But that would not do the trick in an update-situation … no idea right now - and no time to think about it right now ;-) I hopefully will have time for this in January 1213 - this topic comes to my mind again and again … Regards, Kai Von: [email protected] [mailto:[email protected]] Im Auftrag von Kristian Hempel - D³ Data Development Gesendet: Freitag, 21. September 2012 14:52 An: [email protected] Betreff: Re: [oxid-dev-general] Improving metadata.php Hi there, the problem lays within updates. How do you document the changes between versions? What do you do with legacy data? What to do if the update fails? (rollback) Best regards D³ Kristian Original Message processed by David.fx Subject: Re: [oxid-dev-general] Improving metadata.php (21-Sep-2012 14:42) From: Kai Gazmaga <mailto:[email protected]> <[email protected]> To: [email protected] Hi! I absolutely support the approach. Writing the four functions optionally (kind of interface-class) would make it clean and easy for developers. Executing SQL is very important for me, too. There should be options to install SQL automatically on activation and deactivation. Further there must be an option to leave SQL untouched in order to keep data in DB. An install- / uninstall-function would be very nice beside the current (de)activation. As you already said, Alexander, showing infos would be interesting too, but by far not as important, as the former things. Regards, Kai VektorDesign - Online-Shops und Programmierung Kai Gazmaga Katharinenstraße 57 73 728 Esslingen Tel.: <tel:%2B49%20711%20-%2025516226> +49 711 - 25516226 Fax: <tel:%2B49%20711%20-%2025518078> +49 711 - 25518078 Mail: <mailto:[email protected]> [email protected] Web: <http://www.vektordesign.de/> www.vektordesign.de Von: [email protected] [mailto:[email protected]] Im Auftrag von Alexander Kludt Gesendet: Freitag, 21. September 2012 14:18 An: [email protected] Betreff: [oxid-dev-general] Improving metadata.php Hi guys, I was developing a new module today, and the metadata.php already makes a lot of things possible, but I still need a way to do some initial things - like executing sql, maybe check some things, capture some use input or just to show some warnings. So my idea is to add a way to execute code "onInstall", "onUninstall", "onActivate", "onDeactivate" . I don't know the mechanics of includinig metadata.php but maybe it could be done like this: <?php $sMetadataVersion = '1.1'; $aModule = array( 'id' => 'mymodule', 'title' => 'Some Module', 'description' => 'Does something', 'thumbnail' => 'module.png', 'version' => '1.0', 'author' => 'Aggrosoft', 'extend' => array( ... ), 'blocks' => array( ... ), ... 'onInstall' => 'myModulOnInstall', 'onUninstall' => 'myModulOnUninstall', 'onActivate' => 'myModulOnActivate', 'onDeactive' => 'myModulOnDeactivate', ); function myModulOnInstall ($aSomeInfosAboutTheShop?Module?State?){ //Write down code to execute on install, return true on success, false if it fails } function myModulOnUninstall ($aSomeInfosAboutTheShop?Module?State?){ //Write down code to execute on deinstallation, return true on success, false if it fails } function myModulOnActivate ($aSomeInfosAboutTheShop?Module?State?){ //Write down code to execute on activation, return true on success, false if it fails } function myModulOnDeactivate ($aSomeInfosAboutTheShop?Module?State?){ //Write down code to execute on deactivation, return true on success, false if it fails } ?> Maybe wrapping an inner class maybe better which follows some kind of interface - so names will not conflict, or come up with some kind of naming sheme. What do you think? Would this make your day easier? I think many modules can be improved with this. -- mit freundlichen Grüßen Alexander Kludt __________________________ Phone: 09283-5925453 Fax: 09283-592671 Skype: kingschnulli Email: [email protected] Website: www.aggrosoft.de <http://www.aggrosoft.de/> __________________________ Aggrosoft it intelligence GbR Tannstrasse 12 95111 Rehau GERMANY Sitz Rehau, Amtsgericht Hof Steuernummer: 223/165/54508 Ust.-Id. Nr. gemäß § 27 a Umsatzsteuergesetz: DE260722773 ___________________________ Diese Nachricht ist nur für den Empfänger () bestimmt, sollten Sie nicht der Empfänger sein löschen Sie diese Nachricht umgehend und geben Sie uns bitte per Email ([email protected]) Bescheid über den fälschlichen Erhalt.
<<image001.png>>
_______________________________________________ dev-general mailing list [email protected] http://dir.gmane.org/gmane.comp.php.oxid.general
