Ανάπτυξη εφαρμογών για Joomla!!"#ί% & (#)ά(+ ( ,--.ά /% ,+ (0 FOF!ά#$%& 2013 – 1& Joomla! Frappé
Τι είναι αυτό το FOF?!ά#$%& 2013 – 1& Joomla! Frappé
Ναι, ξέρω τι σκέφτεστε“Ό!. 2+έ ,04, ό!., ό!. ά--0 έ& 6(#,έ&0 framework!”!ά#$%& 2013 – 1& Joomla! Frappé
Το FOF επεκτείνει το Joomla! framework7+& (0 &(.68./(ά 9-ή#"%!ά#$%& 2013 – 1& Joomla! Frappé
DRY - Μην Επαναλαμβάνεστε!"#ώ (0 copy/paste (04 ί;.04 6ώ;.6 =&ά 6. =&ά 6. =&ά !"# $"%ά !"# $"%ά 6. =&ά 6. =&ά...!ά#$%& 201...
Το λιγότερο είναι περισσότεροConvention over configuration – -.>ό(+#0% !#ό&0%, 6ό90%, 6ώ;.6% 6. bugs!ά#$%& 2013 – 1& Joomla...
Δεν επιβάλλει τον τρόπο σκέψης του7+& έ!+. ,ύ# 604(.ά, --ά έ!+. 9#0/#,0@ό,+& triggers, >+>0&ό( 9#0/8έ("&...!ά#$%& 2013 – 1...
Παίζει καλά με τ’άλλα παιδιάA4,)(ό ,+ Joomla! 2.5 6. 3.0.!ά#$%& 2013 – 1& Joomla! Frappé
Προς τα πίσω συμβατότητα7+& έ!+. =B&.6έ%, 60/,0>0&.6έ% -->έ% 9’(C ,. ,έ# /(C& ά--C!ά#$%& 2013 – 1& Joomla! Frappé
Λίγη ιστορίαD"% B(ά/,+ "% +;ώ!ά#$%& 2013 – 1& Joomla! Frappé
Ιούλιος 2009 – Βασικές MVC κλάσεις7.6έ% ,04 6-ά/+.%, +9+6(+ί&04& (0 JModel 6. /., +-!./(090.0ύ& (0& copy & paste 6ώ;.6!ά#$...
Σεπτέμβριος 2011 – Γϊναμε κανονικό frameworkE/.6ά, ( +ί! 9ά#+. ,+ έ& ά--0 framework 904 ,04 έ6&+ (C& @"ή 9(ί&.!ά#$%& 2013 ...
THIS. IS. NIKEA!      (Η Σπάρτη είχε άλλες δουλειές να κάνει)Σεπτέμβριος 2011 – Γϊναμε κανονικό frameworkE/.6ά, ( +ί! 9ά#+...
Οκτώβριος 2011 – HMVC+&ώ +ί! 60--ή/+. ,έ/ /(0 +#09-ά&0, /(0 έ;B0%, /(0 F-. E+&.@έ-0% >. 4 ώ#+%!ά#$%& 2013 – 1& Joomla! Fra...
Μάιος 2012 – Δημόσια έκδοση/(0 /4&έ;#.0 J and Beyond 2012!ά#$%& 2013 – 1& Joomla! Frappé
Ιούνιος 2012 – Bootstrap & jQueryA(0 9#0.#+(.6ό 96έ(0 Akeeba Strapper!ά#$%& 2013 – 1& Joomla! Frappé
Φεβρουάριος 2013 – η έκδοση 2.0 ΔΕΝ μπήκε στο Joomla! 3(0 090ί0, (+-.6ά, +ί&. 6ά(. 6-ό!!ά#$%& 2013 – 1& Joomla! Frappé
Στο μυαλό μιας εφαρμογής σε FOFG. +9ί/6+HC /(0 ό#0B0 71/2 +&ό% 6(.#ί04 >#B+ί"& /(0 G&!ά(&!ά#$%& 2013 – 1& Joomla! Frappé
Μερικές γενικές σκέψεις✤   A!+;ό% RESTful, --ά ό!. 6. (ό/0✤   D#0/έ>>./C “9#ώ( 0. 49C#+/ί+%”. F&/",(",έ&C 490/(ή#.=C JSON ...
Προσοχή: Απαραίτητη η γονική συναίνεση6. C /(0.!+.ώ;C% >&ώ/C (C% >>-.6ή%!ά#$%& 2013 – 1& Joomla! Frappé
Convention over Configuration
Convention over configuration inthe Dispatcher✤   The Dispatcher is your component’s router. It routes the request to the ...
Convention over configuration inModels✤   Tables are named as #__component_view, e.g. #__todo_items✤   Auto increment field...
Convention over configuration inControllers✤   Default tasks (not RESTful!): browse, read, edit, add, delete, save,    app...
Convention over configuration inViews✤   Views inherit from FOFView and its specialized children, e.g.    FOFViewHtml✤   C...
Epic features
HMVC – Hierarchical MVC✤   Include the results of component views anywhere (other views, other    component, modules, ...)...
Reuse view templates✤   Load a view template from another view, component, ...✤   echo $this->loadAnyTemplate(site:com_foo...
Media files overrides✤   Load media files like this:    FOFTemplateUtils::addCSS(media://com_foobar/css/frontend.css);✤   M...
Services first – automatic JSONand CSV views✤   Just add format=json or format=csv✤   JSON: You have an instant JSON-based...
XML-based views✤   It’s JForm on double dose of steroids✤   Browse, read and edit views from XML templates✤   You don’t ne...
Resources and communityhttp://akeeba.info/fof
Over and out.
Upcoming SlideShare
Loading in …5
×

Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά σας με το FOF

1,130 views
1,041 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,130
On SlideShare
0
From Embeds
0
Number of Embeds
159
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά σας με το FOF

  1. 1. Ανάπτυξη εφαρμογών για Joomla!!"#ί% & (#)ά(+ ( ,--.ά /% ,+ (0 FOF!ά#$%& 2013 – 1& Joomla! Frappé
  2. 2. Τι είναι αυτό το FOF?!ά#$%& 2013 – 1& Joomla! Frappé
  3. 3. Ναι, ξέρω τι σκέφτεστε“Ό!. 2+έ ,04, ό!., ό!. ά--0 έ& 6(#,έ&0 framework!”!ά#$%& 2013 – 1& Joomla! Frappé
  4. 4. Το FOF επεκτείνει το Joomla! framework7+& (0 &(.68./(ά 9-ή#"%!ά#$%& 2013 – 1& Joomla! Frappé
  5. 5. DRY - Μην Επαναλαμβάνεστε!"#ώ (0 copy/paste (04 ί;.04 6ώ;.6 =&ά 6. =&ά 6. =&ά !"# $"%ά !"# $"%ά 6. =&ά 6. =&ά...!ά#$%& 2013 – 1& Joomla! Frappé
  6. 6. Το λιγότερο είναι περισσότεροConvention over configuration – -.>ό(+#0% !#ό&0%, 6ό90%, 6ώ;.6% 6. bugs!ά#$%& 2013 – 1& Joomla! Frappé
  7. 7. Δεν επιβάλλει τον τρόπο σκέψης του7+& έ!+. ,ύ# 604(.ά, --ά έ!+. 9#0/#,0@ό,+& triggers, >+>0&ό( 9#0/8έ("&...!ά#$%& 2013 – 1& Joomla! Frappé
  8. 8. Παίζει καλά με τ’άλλα παιδιάA4,)(ό ,+ Joomla! 2.5 6. 3.0.!ά#$%& 2013 – 1& Joomla! Frappé
  9. 9. Προς τα πίσω συμβατότητα7+& έ!+. =B&.6έ%, 60/,0>0&.6έ% -->έ% 9’(C ,. ,έ# /(C& ά--C!ά#$%& 2013 – 1& Joomla! Frappé
  10. 10. Λίγη ιστορίαD"% B(ά/,+ "% +;ώ!ά#$%& 2013 – 1& Joomla! Frappé
  11. 11. Ιούλιος 2009 – Βασικές MVC κλάσεις7.6έ% ,04 6-ά/+.%, +9+6(+ί&04& (0 JModel 6. /., +-!./(090.0ύ& (0& copy & paste 6ώ;.6!ά#$%& 2013 – 1& Joomla! Frappé
  12. 12. Σεπτέμβριος 2011 – Γϊναμε κανονικό frameworkE/.6ά, ( +ί! 9ά#+. ,+ έ& ά--0 framework 904 ,04 έ6&+ (C& @"ή 9(ί&.!ά#$%& 2013 – 1& Joomla! Frappé
  13. 13. THIS. IS. NIKEA! (Η Σπάρτη είχε άλλες δουλειές να κάνει)Σεπτέμβριος 2011 – Γϊναμε κανονικό frameworkE/.6ά, ( +ί! 9ά#+. ,+ έ& ά--0 framework 904 ,04 έ6&+ (C& @"ή 9(ί&.!ά#$%& 2013 – 1& Joomla! Frappé
  14. 14. Οκτώβριος 2011 – HMVC+&ώ +ί! 60--ή/+. ,έ/ /(0 +#09-ά&0, /(0 έ;B0%, /(0 F-. E+&.@έ-0% >. 4 ώ#+%!ά#$%& 2013 – 1& Joomla! Frappé
  15. 15. Μάιος 2012 – Δημόσια έκδοση/(0 /4&έ;#.0 J and Beyond 2012!ά#$%& 2013 – 1& Joomla! Frappé
  16. 16. Ιούνιος 2012 – Bootstrap & jQueryA(0 9#0.#+(.6ό 96έ(0 Akeeba Strapper!ά#$%& 2013 – 1& Joomla! Frappé
  17. 17. Φεβρουάριος 2013 – η έκδοση 2.0 ΔΕΝ μπήκε στο Joomla! 3(0 090ί0, (+-.6ά, +ί&. 6ά(. 6-ό!!ά#$%& 2013 – 1& Joomla! Frappé
  18. 18. Στο μυαλό μιας εφαρμογής σε FOFG. +9ί/6+HC /(0 ό#0B0 71/2 +&ό% 6(.#ί04 >#B+ί"& /(0 G&!ά(&!ά#$%& 2013 – 1& Joomla! Frappé
  19. 19. Μερικές γενικές σκέψεις✤ A!+;ό% RESTful, --ά ό!. 6. (ό/0✤ D#0/έ>>./C “9#ώ( 0. 49C#+/ί+%”. F&/",(",έ&C 490/(ή#.=C JSON 6. ;.B&ή% 48+&(.6090ίC/C 904 &0ί>+. (C& 9ό#( >. 9#0!ή ;+;0,έ&"& /+ +B#,0>έ% (web, desktop, mobile 6. ;+& /4,,@+ύ+(.)✤ Ό!., (0 OAuth ;+& 490/(C#ί@+(. (6ό,;). G. ;.6.ά ,% )/./,έ&C /+ TOTP 6. AES-256 ,έ80;0% ;.B&0ύ% 48+&(.6090ίC/C% 6. (0 9-ό HTTP Basic Authentication 490/(C#ί@0&(. ή;C.✤ D#έ!04,+ HMVC #ή&() !"#ί% & !#+./(+ί & =&,ά8+(+ & B(.ά!&+(+ +B#,0>έ% /+ Joomla! (/+ &(ί8+/C ,+ (0 9#0(+.&ό,+&0 Joomla! Framework, ό(& 6. & +ί&. έ(0.,0)
  20. 20. Προσοχή: Απαραίτητη η γονική συναίνεση6. C /(0.!+.ώ;C% >&ώ/C (C% >>-.6ή%!ά#$%& 2013 – 1& Joomla! Frappé
  21. 21. Convention over Configuration
  22. 22. Convention over configuration inthe Dispatcher✤ The Dispatcher is your component’s router. It routes the request to the appropriate Controller based on conventions: ✤ A POST request gets routed to the save task ✤ A GET request to a plural view name gets routed to the browse task ✤ A front-end GET request with an ID gets routed to the read task ✤ A back-end GET request with an ID gets routed to the edit task
  23. 23. Convention over configuration inModels✤ Tables are named as #__component_view, e.g. #__todo_items✤ Auto increment field is named component_view_id, e.g. todo_item_id✤ Magic fields: enabled, created_by, created_on, modified_by, modified_on, locked_by, locked_on, hits✤ You can override defaults without copying & pasting code, ever. Copy & paste is the devil!
  24. 24. Convention over configuration inControllers✤ Default tasks (not RESTful!): browse, read, edit, add, delete, save, apply, ...✤ Customize with onBeforeMethod and onAfterMethod methods, e.g. onBeforeSave. Dont copy & paste code.✤ All MVC objects can be passed a $config array to customize them. It "flows" from dispatcher to component to model and view.✤ FOF guesses the task if its missing based on plural/singular view name and existence of ID in the query
  25. 25. Convention over configuration inViews✤ Views inherit from FOFView and its specialized children, e.g. FOFViewHtml✤ Customize using the onTask methods, e.g. onBrowse✤ The toolbar is handled outside the view, in a FOFToolbar descendant class. Override it with a toolbar.php file in the components root.✤ Magic toolbar methods, e.g. onItemsBrowse allow you to customize the toolbar without copying & pasting code.
  26. 26. Epic features
  27. 27. HMVC – Hierarchical MVC✤ Include the results of component views anywhere (other views, other component, modules, ...)✤ FOFDispatcher::getTmpInstance(‘com_foobar’, ‘items’, array(‘layout’ => ‘fancy’))->dispatch();
  28. 28. Reuse view templates✤ Load a view template from another view, component, ...✤ echo $this->loadAnyTemplate(site:com_foobar/item/form);
  29. 29. Media files overrides✤ Load media files like this: FOFTemplateUtils::addCSS(media://com_foobar/css/frontend.css);✤ Media overrides are inside the template folder, e.g. templates/tpl_example/media/com_foobar/css/frontend.css
  30. 30. Services first – automatic JSONand CSV views✤ Just add format=json or format=csv✤ JSON: You have an instant JSON-based remote API for your components✤ CSV: You can quickly export whatever you see in the backend to Excel, Numbers, LibreOffice, Google Docs, etc.✤ Transparent authentication support using URL parameters or HTTP Basic Authentication
  31. 31. XML-based views✤ It’s JForm on double dose of steroids✤ Browse, read and edit views from XML templates✤ You don’t need to write any PHP or HTML, but you can mix traditional PHP-based and XML-based templates, even in the same view✤ Overridable with Joomla! template overrides
  32. 32. Resources and communityhttp://akeeba.info/fof
  33. 33. Over and out.

×