What’s new in theJoomla Platform?2012 EditionBy Rouven Weßling
Who am I?
Who am I?Active in the JBS since 2009
Who am I?Active in the JBS since 2009Platform maintainer for about ayear
Who am I?Active in the JBS since 2009Platform maintainer for about ayearBy pull requests most activeplatform contributor
I talk really fast...
I talk really fast......so stop me whenever you need to! ;)
HistoryWhat’s new?What’s in it for the future?
A brief history
A (very) brief history
Platform split (or “forked”) in early 2011
Platform split (or “forked”) in early 2011First release (11.1) in July 2011 - mostly rebranded libraries from the CMS
Platform split (or “forked”) in early 2011First release (11.1) in July 2011 - mostly rebranded libraries from the CMS11.2 ...
Platform split (or “forked”) in early 2011First release (11.1) in July 2011 - mostly rebranded libraries from the CMS11.2 ...
Platform split (or “forked”) in early 2011First release (11.1) in July 2011 - mostly rebranded libraries from the CMS11.2 ...
Platform split (or “forked”) in early 2011First release (11.1) in July 2011 - mostly rebranded libraries from the CMS11.2 ...
11.3 released in November 2011
11.3 released in November 2011 Support for web applications (JWeb)
11.3 released in November 2011 Support for web applications (JWeb) HTTP client abstraction (JHttp)
11.3 released in November 2011 Support for web applications (JWeb) HTTP client abstraction (JHttp) image manipulation (JIm...
11.3 released in November 2011 Support for web applications (JWeb) HTTP client abstraction (JHttp) image manipulation (JIm...
11.3 released in November 2011 Support for web applications (JWeb) HTTP client abstraction (JHttp) image manipulation (JIm...
11.4 released in January 2012
11.4 released in January 2012 shipped with Joomla! 2.5
11.4 released in January 2012 shipped with Joomla! 2.5 Support for multiple databases
11.4 released in January 2012 shipped with Joomla! 2.5 Support for multiple databases   Only MySQL and Microsoft SQL
Award winning2012 J.O.S.C.A.R. as Innovation of the Year
What’s new?In 12.1 and 12.2
Expanded database support
Expanded database supportPostgreSQL
Expanded database supportPostgreSQLSQLite (PDO)
Expanded database supportPostgreSQLSQLite (PDO)Oracle (PDO)
Expanded database supportPostgreSQLSQLite (PDO)Oracle (PDO)Previously supported
Expanded database supportPostgreSQLSQLite (PDO)Oracle (PDO)Previously supported MySQL
Expanded database supportPostgreSQLSQLite (PDO)Oracle (PDO)Previously supported MySQL Microsoft SQL
Database iterator
Database iteratorAllows you to traverse trough rows 1 by 1
Database iteratorAllows you to traverse trough rows 1 by 1Very efficient for large datasets
Database iteratorAllows you to traverse trough rows 1 by 1Very efficient for large datasets Even more efficient when you nee...
Database iteratorAllows you to traverse trough rows 1 by 1Very efficient for large datasets Even more efficient when you nee...
Database iteratorAllows you to traverse trough rows 1 by 1Very efficient for large datasets Even more efficient when you nee...
New slim MVC
New slim MVCInterface based
New slim MVCInterface based JController, JModel, JView
New slim MVCInterface based JController, JModel, JView Old classes renamed to JControllerLegacy, etc.
New slim MVCInterface based JController, JModel, JView Old classes renamed to JControllerLegacy, etc. Some (very) basic cl...
New slim MVCInterface based JController, JModel, JView Old classes renamed to JControllerLegacy, etc. Some (very) basic cl...
How slim?
How slim?interface JController extends Serializable{	   public function execute();	   public function getApplication();	  ...
How slim?interface JModel{	   public function getState();	   public function setState(JRegistry $state);}
How slim?interface JView{	   public function escape($output);	   public function render();}
Crypt package
Crypt packageSuccessor for JSimplecrypt
Crypt packageSuccessor for JSimplecryptSupports more algorithms
Crypt packageSuccessor for JSimplecryptSupports more algorithms 3DES
Crypt packageSuccessor for JSimplecryptSupports more algorithms 3DES Blowfish
Crypt packageSuccessor for JSimplecryptSupports more algorithms 3DES Blowfish Rijndael 256
Crypt packageSuccessor for JSimplecryptSupports more algorithms 3DES Blowfish Rijndael 256Based on mycrypt - uses native co...
Crypt package
Crypt packageA well tested source for random data
Crypt packageA well tested source for random dataJCrypt::genRandomBytes
Crypt packageA well tested source for random dataJCrypt::genRandomBytesIf possible we tap openssl_random_pseudo_bytes
Crypt packageA well tested source for random dataJCrypt::genRandomBytesIf possible we tap openssl_random_pseudo_bytesIf no...
Crypt packageA well tested source for random dataJCrypt::genRandomBytesIf possible we tap openssl_random_pseudo_bytesIf no...
Crypt package
Crypt packageInterface JCryptPassword
Crypt packageInterface JCryptPasswordImplementation JCryptPasswordSimple
Crypt packageInterface JCryptPasswordImplementation JCryptPasswordSimple Supports MD5, PBDKF, Blowfish and “Joomla”
Crypt packageInterface JCryptPasswordImplementation JCryptPasswordSimple Supports MD5, PBDKF, Blowfish and “Joomla”Allows s...
Crypt packageInterface JCryptPasswordImplementation JCryptPasswordSimple Supports MD5, PBDKF, Blowfish and “Joomla”Allows s...
Crypt packageInterface JCryptPasswordImplementation JCryptPasswordSimple Supports MD5, PBDKF, Blowfish and “Joomla”Allows s...
Composer support
Composer supportDependency management forPHP
Composer supportDependency management forPHPAllows for far easier integration ofthe platform into other projects
Composer supportDependency management forPHPAllows for far easier integration ofthe platform into other projectsDe facto s...
Composer supportDependency management forPHPAllows for far easier integration ofthe platform into other projectsDe facto s...
...and much more
...and much moreFile patcher
...and much moreFile patcherString inflecting and normalizing
...and much moreFile patcherString inflecting and normalizingStemming
...and much moreFile patcherString inflecting and normalizingStemmingnew Router
What’s in it for the future?
Error handling
Error handlingJError is already on its way out
Error handlingJError is already on its way outJObject::getError andJObject::setError are going too
Error handlingJError is already on its way outJObject::getError andJObject::setError are going tooExceptions are the future
Error handling JError is already on its way out JObject::getError and JObject::setError are going too Exceptions are the f...
Package isolation
Package isolationCurrently the platform is one big package
Package isolationCurrently the platform is one big package 42 subpackages
Package isolationCurrently the platform is one big package 42 subpackagesWe want to make them available as individual pack...
Package isolationCurrently the platform is one big package 42 subpackagesWe want to make them available as individual pack...
Package isolation
Package isolationWe have a pretty good understanding of the dependencies betweensubpackages
Package isolationWe have a pretty good understanding of the dependencies betweensubpackages There are too many
Package isolationWe have a pretty good understanding of the dependencies betweensubpackages There are too manyWe want to r...
Package isolation examples
Package isolation examplesDirectoryIterator instead of JFolder::files() and JFolder::folders()
Package isolation examplesDirectoryIterator instead of JFolder::files() and JFolder::folders()Exceptions instead of JError
Package isolation examplesDirectoryIterator instead of JFolder::files() and JFolder::folders()Exceptions instead of JErrorN...
Unit testing and being testable
Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting
Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting JRequest
Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting JRequest JError
Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting JRequest JErrorRep...
Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting JRequest JErrorRep...
Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting JRequest JErrorRep...
Removing CMS specific code
Removing CMS specific codeMoved in 3.0 JEditor JHelp JToolbar
Removing CMS specific codeMoved in 3.0 JEditor JHelp JToolbarTo be moved JComponentHelper JModuleHelper
Leveraging the power of PHP
Leveraging the power of PHPRemoving hacks and workarounds wherever possible (z.B.JProfiler::getMemory)
Leveraging the power of PHPRemoving hacks and workarounds wherever possible (z.B.JProfiler::getMemory)Integrating with PHP...
Leveraging the power of PHPRemoving hacks and workarounds wherever possible (z.B.JProfiler::getMemory)Integrating with PHP...
Leveraging the power of PHPRemoving hacks and workarounds wherever possible (z.B.JProfiler::getMemory)Integrating with PHP...
Example$var = JRequest::get();echo count($var);$input = new JInput;echo = count($input);
More API consumers
More API consumersJGithub (since 11.3)
More API consumersJGithub (since 11.3)OAuth client
More API consumersJGithub (since 11.3)OAuth client OAuth2 included in 12.3
More API consumersJGithub (since 11.3)OAuth client OAuth2 included in 12.3JGoogle (since 12.3)
More API consumersJGithub (since 11.3)OAuth client OAuth2 included in 12.3JGoogle (since 12.3)Many more in progress:
More API consumersJGithub (since 11.3)OAuth client OAuth2 included in 12.3JGoogle (since 12.3)Many more in progress: JFace...
More API consumersJGithub (since 11.3)OAuth client OAuth2 included in 12.3JGoogle (since 12.3)Many more in progress: JFace...
New APIs in the future
New APIs in the futureJKeychain
New APIs in the futureJKeychain Secure Key-Value-Storage based on JRegistry
New APIs in the futureJKeychain Secure Key-Value-Storage based on JRegistryNew event system
New APIs in the futureJKeychain Secure Key-Value-Storage based on JRegistryNew event systemUnified Content Model
PSR
PSRPSR-2 support is almost complete very few files don’t comply for good reason the PSR-0 references is ignoredPSR-0 will b...
“Another development that force me torethink ZF approach is the maturity ofJoomla-Platform itself. Ever since Joomladecide...
Thank you for your attention!Rouven Weßling@RouvenWesslingwww.rouvenwessling.deme@rouvenwessling.de
Thank you for your attention!                        My Workshops tomorrow:                        •Building a standalone ...
Joomla Day DK 2012
Joomla Day DK 2012
Joomla Day DK 2012
Joomla Day DK 2012
Joomla Day DK 2012
Upcoming SlideShare
Loading in …5
×

Joomla Day DK 2012

937 views
899 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

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

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • -Talk about what the goal was\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • -Talk about autoloader later\n
  • -Talk about autoloader later\n
  • -Talk about autoloader later\n
  • -Talk about autoloader later\n
  • -Talk about autoloader later\n
  • -Talk about autoloader later\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Old MVC essentially from 1.5\n
  • Old MVC essentially from 1.5\n
  • Old MVC essentially from 1.5\n
  • Old MVC essentially from 1.5\n
  • Old MVC essentially from 1.5\n
  • \n
  • \n
  • \n
  • JSimpleCrypt now internally uses JCryptSimple\n\n
  • JSimpleCrypt now internally uses JCryptSimple\n\n
  • JSimpleCrypt now internally uses JCryptSimple\n\n
  • JSimpleCrypt now internally uses JCryptSimple\n\n
  • JSimpleCrypt now internally uses JCryptSimple\n\n
  • JSimpleCrypt now internally uses JCryptSimple\n\n
  • /dev/urandom, filestat, rand, mt_rand, memory useage\n
  • /dev/urandom, filestat, rand, mt_rand, memory useage\n
  • /dev/urandom, filestat, rand, mt_rand, memory useage\n
  • /dev/urandom, filestat, rand, mt_rand, memory useage\n
  • /dev/urandom, filestat, rand, mt_rand, memory useage\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Static methods are a hint to these classes\n
  • Static methods are a hint to these classes\n
  • Static methods are a hint to these classes\n
  • Static methods are a hint to these classes\n
  • Static methods are a hint to these classes\n
  • Static methods are a hint to these classes\n
  • \n
  • \n
  • JRegistry implements JsonSerializable\nJInput implements Countable\n
  • JRegistry implements JsonSerializable\nJInput implements Countable\n
  • JRegistry implements JsonSerializable\nJInput implements Countable\n
  • JRegistry implements JsonSerializable\nJInput implements Countable\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Duke Nukem Forever of the Joomla world\n
  • Duke Nukem Forever of the Joomla world\n
  • Duke Nukem Forever of the Joomla world\n
  • Duke Nukem Forever of the Joomla world\n
  • \n
  • \n
  • \n
  • Joomla Day DK 2012

    1. 1. What’s new in theJoomla Platform?2012 EditionBy Rouven Weßling
    2. 2. Who am I?
    3. 3. Who am I?Active in the JBS since 2009
    4. 4. Who am I?Active in the JBS since 2009Platform maintainer for about ayear
    5. 5. Who am I?Active in the JBS since 2009Platform maintainer for about ayearBy pull requests most activeplatform contributor
    6. 6. I talk really fast...
    7. 7. I talk really fast......so stop me whenever you need to! ;)
    8. 8. HistoryWhat’s new?What’s in it for the future?
    9. 9. A brief history
    10. 10. A (very) brief history
    11. 11. Platform split (or “forked”) in early 2011
    12. 12. Platform split (or “forked”) in early 2011First release (11.1) in July 2011 - mostly rebranded libraries from the CMS
    13. 13. Platform split (or “forked”) in early 2011First release (11.1) in July 2011 - mostly rebranded libraries from the CMS11.2 released only 3 weeks later
    14. 14. Platform split (or “forked”) in early 2011First release (11.1) in July 2011 - mostly rebranded libraries from the CMS11.2 released only 3 weeks later shipped with Joomla! 1.7.0
    15. 15. Platform split (or “forked”) in early 2011First release (11.1) in July 2011 - mostly rebranded libraries from the CMS11.2 released only 3 weeks later shipped with Joomla! 1.7.0Not many big new features - but vastly better documentation.
    16. 16. Platform split (or “forked”) in early 2011First release (11.1) in July 2011 - mostly rebranded libraries from the CMS11.2 released only 3 weeks later shipped with Joomla! 1.7.0Not many big new features - but vastly better documentation.One notable exception is support for CLI applications
    17. 17. 11.3 released in November 2011
    18. 18. 11.3 released in November 2011 Support for web applications (JWeb)
    19. 19. 11.3 released in November 2011 Support for web applications (JWeb) HTTP client abstraction (JHttp)
    20. 20. 11.3 released in November 2011 Support for web applications (JWeb) HTTP client abstraction (JHttp) image manipulation (JImage)
    21. 21. 11.3 released in November 2011 Support for web applications (JWeb) HTTP client abstraction (JHttp) image manipulation (JImage) GitHub API (JGitHub)
    22. 22. 11.3 released in November 2011 Support for web applications (JWeb) HTTP client abstraction (JHttp) image manipulation (JImage) GitHub API (JGitHub) Autoloader
    23. 23. 11.4 released in January 2012
    24. 24. 11.4 released in January 2012 shipped with Joomla! 2.5
    25. 25. 11.4 released in January 2012 shipped with Joomla! 2.5 Support for multiple databases
    26. 26. 11.4 released in January 2012 shipped with Joomla! 2.5 Support for multiple databases Only MySQL and Microsoft SQL
    27. 27. Award winning2012 J.O.S.C.A.R. as Innovation of the Year
    28. 28. What’s new?In 12.1 and 12.2
    29. 29. Expanded database support
    30. 30. Expanded database supportPostgreSQL
    31. 31. Expanded database supportPostgreSQLSQLite (PDO)
    32. 32. Expanded database supportPostgreSQLSQLite (PDO)Oracle (PDO)
    33. 33. Expanded database supportPostgreSQLSQLite (PDO)Oracle (PDO)Previously supported
    34. 34. Expanded database supportPostgreSQLSQLite (PDO)Oracle (PDO)Previously supported MySQL
    35. 35. Expanded database supportPostgreSQLSQLite (PDO)Oracle (PDO)Previously supported MySQL Microsoft SQL
    36. 36. Database iterator
    37. 37. Database iteratorAllows you to traverse trough rows 1 by 1
    38. 38. Database iteratorAllows you to traverse trough rows 1 by 1Very efficient for large datasets
    39. 39. Database iteratorAllows you to traverse trough rows 1 by 1Very efficient for large datasets Even more efficient when you need to abort midway
    40. 40. Database iteratorAllows you to traverse trough rows 1 by 1Very efficient for large datasets Even more efficient when you need to abort midwayVery inefficient for small datasets
    41. 41. Database iteratorAllows you to traverse trough rows 1 by 1Very efficient for large datasets Even more efficient when you need to abort midwayVery inefficient for small datasetsJDatabaseDriver::getIterator()
    42. 42. New slim MVC
    43. 43. New slim MVCInterface based
    44. 44. New slim MVCInterface based JController, JModel, JView
    45. 45. New slim MVCInterface based JController, JModel, JView Old classes renamed to JControllerLegacy, etc.
    46. 46. New slim MVCInterface based JController, JModel, JView Old classes renamed to JControllerLegacy, etc. Some (very) basic classes (e.g. JModelBase, JModelDatabase) exist
    47. 47. New slim MVCInterface based JController, JModel, JView Old classes renamed to JControllerLegacy, etc. Some (very) basic classes (e.g. JModelBase, JModelDatabase) exist All other plumbing needs to be done by you (no CRUD)
    48. 48. How slim?
    49. 49. How slim?interface JController extends Serializable{ public function execute(); public function getApplication(); public function getInput();}
    50. 50. How slim?interface JModel{ public function getState(); public function setState(JRegistry $state);}
    51. 51. How slim?interface JView{ public function escape($output); public function render();}
    52. 52. Crypt package
    53. 53. Crypt packageSuccessor for JSimplecrypt
    54. 54. Crypt packageSuccessor for JSimplecryptSupports more algorithms
    55. 55. Crypt packageSuccessor for JSimplecryptSupports more algorithms 3DES
    56. 56. Crypt packageSuccessor for JSimplecryptSupports more algorithms 3DES Blowfish
    57. 57. Crypt packageSuccessor for JSimplecryptSupports more algorithms 3DES Blowfish Rijndael 256
    58. 58. Crypt packageSuccessor for JSimplecryptSupports more algorithms 3DES Blowfish Rijndael 256Based on mycrypt - uses native code.
    59. 59. Crypt package
    60. 60. Crypt packageA well tested source for random data
    61. 61. Crypt packageA well tested source for random dataJCrypt::genRandomBytes
    62. 62. Crypt packageA well tested source for random dataJCrypt::genRandomBytesIf possible we tap openssl_random_pseudo_bytes
    63. 63. Crypt packageA well tested source for random dataJCrypt::genRandomBytesIf possible we tap openssl_random_pseudo_bytesIf not we gather our own entropy
    64. 64. Crypt packageA well tested source for random dataJCrypt::genRandomBytesIf possible we tap openssl_random_pseudo_bytesIf not we gather our own entropyBased on a research paper that found issues in several PHP application’srandom number generation - including Joomla!
    65. 65. Crypt package
    66. 66. Crypt packageInterface JCryptPassword
    67. 67. Crypt packageInterface JCryptPasswordImplementation JCryptPasswordSimple
    68. 68. Crypt packageInterface JCryptPasswordImplementation JCryptPasswordSimple Supports MD5, PBDKF, Blowfish and “Joomla”
    69. 69. Crypt packageInterface JCryptPasswordImplementation JCryptPasswordSimple Supports MD5, PBDKF, Blowfish and “Joomla”Allows switching out the password handling library
    70. 70. Crypt packageInterface JCryptPasswordImplementation JCryptPasswordSimple Supports MD5, PBDKF, Blowfish and “Joomla”Allows switching out the password handling library for example PHP-PasswordLib
    71. 71. Crypt packageInterface JCryptPasswordImplementation JCryptPasswordSimple Supports MD5, PBDKF, Blowfish and “Joomla”Allows switching out the password handling library for example PHP-PasswordLibNot yet used by JUser
    72. 72. Composer support
    73. 73. Composer supportDependency management forPHP
    74. 74. Composer supportDependency management forPHPAllows for far easier integration ofthe platform into other projects
    75. 75. Composer supportDependency management forPHPAllows for far easier integration ofthe platform into other projectsDe facto standard in the PHPcommunity
    76. 76. Composer supportDependency management forPHPAllows for far easier integration ofthe platform into other projectsDe facto standard in the PHPcommunityFor more info see http://getcomposer.org
    77. 77. ...and much more
    78. 78. ...and much moreFile patcher
    79. 79. ...and much moreFile patcherString inflecting and normalizing
    80. 80. ...and much moreFile patcherString inflecting and normalizingStemming
    81. 81. ...and much moreFile patcherString inflecting and normalizingStemmingnew Router
    82. 82. What’s in it for the future?
    83. 83. Error handling
    84. 84. Error handlingJError is already on its way out
    85. 85. Error handlingJError is already on its way outJObject::getError andJObject::setError are going too
    86. 86. Error handlingJError is already on its way outJObject::getError andJObject::setError are going tooExceptions are the future
    87. 87. Error handling JError is already on its way out JObject::getError and JObject::setError are going too Exceptions are the futurethrow new Exception(“Ups!”);throw new RuntimeException(“Ups!”);throw new LogicException(“Ups!);
    88. 88. Package isolation
    89. 89. Package isolationCurrently the platform is one big package
    90. 90. Package isolationCurrently the platform is one big package 42 subpackages
    91. 91. Package isolationCurrently the platform is one big package 42 subpackagesWe want to make them available as individual packages using composer
    92. 92. Package isolationCurrently the platform is one big package 42 subpackagesWe want to make them available as individual packages using composerMakes it easier for applications to cherry-pick what they need
    93. 93. Package isolation
    94. 94. Package isolationWe have a pretty good understanding of the dependencies betweensubpackages
    95. 95. Package isolationWe have a pretty good understanding of the dependencies betweensubpackages There are too many
    96. 96. Package isolationWe have a pretty good understanding of the dependencies betweensubpackages There are too manyWe want to reduce them as much as feasible
    97. 97. Package isolation examples
    98. 98. Package isolation examplesDirectoryIterator instead of JFolder::files() and JFolder::folders()
    99. 99. Package isolation examplesDirectoryIterator instead of JFolder::files() and JFolder::folders()Exceptions instead of JError
    100. 100. Package isolation examplesDirectoryIterator instead of JFolder::files() and JFolder::folders()Exceptions instead of JErrorNot using per-package exceptions (JDatabaseException,LogException)
    101. 101. Unit testing and being testable
    102. 102. Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting
    103. 103. Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting JRequest
    104. 104. Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting JRequest JError
    105. 105. Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting JRequest JErrorReplacing these classes withobject oriented replacements
    106. 106. Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting JRequest JErrorReplacing these classes withobject oriented replacements JInput
    107. 107. Unit testing and being testableThere’s a lot of old code that’shard or impossible to isolate fortesting JRequest JErrorReplacing these classes withobject oriented replacements JInput Exception
    108. 108. Removing CMS specific code
    109. 109. Removing CMS specific codeMoved in 3.0 JEditor JHelp JToolbar
    110. 110. Removing CMS specific codeMoved in 3.0 JEditor JHelp JToolbarTo be moved JComponentHelper JModuleHelper
    111. 111. Leveraging the power of PHP
    112. 112. Leveraging the power of PHPRemoving hacks and workarounds wherever possible (z.B.JProfiler::getMemory)
    113. 113. Leveraging the power of PHPRemoving hacks and workarounds wherever possible (z.B.JProfiler::getMemory)Integrating with PHP trough interfaces like Countable, Serizeable,JsonSeriazeable (PHP 5.4 only) Iterator and IteratorAggregate
    114. 114. Leveraging the power of PHPRemoving hacks and workarounds wherever possible (z.B.JProfiler::getMemory)Integrating with PHP trough interfaces like Countable, Serizeable,JsonSeriazeable (PHP 5.4 only) Iterator and IteratorAggregateUsing SPL Exception (RuntimeException,UnexpectedValueException)
    115. 115. Leveraging the power of PHPRemoving hacks and workarounds wherever possible (z.B.JProfiler::getMemory)Integrating with PHP trough interfaces like Countable, Serizeable,JsonSeriazeable (PHP 5.4 only) Iterator and IteratorAggregateUsing SPL Exception (RuntimeException,UnexpectedValueException)Leveraging the SPL wherever possible (e.g. DirectoryItertor,SplPriorityQueue)
    116. 116. Example$var = JRequest::get();echo count($var);$input = new JInput;echo = count($input);
    117. 117. More API consumers
    118. 118. More API consumersJGithub (since 11.3)
    119. 119. More API consumersJGithub (since 11.3)OAuth client
    120. 120. More API consumersJGithub (since 11.3)OAuth client OAuth2 included in 12.3
    121. 121. More API consumersJGithub (since 11.3)OAuth client OAuth2 included in 12.3JGoogle (since 12.3)
    122. 122. More API consumersJGithub (since 11.3)OAuth client OAuth2 included in 12.3JGoogle (since 12.3)Many more in progress:
    123. 123. More API consumersJGithub (since 11.3)OAuth client OAuth2 included in 12.3JGoogle (since 12.3)Many more in progress: JFacebook
    124. 124. More API consumersJGithub (since 11.3)OAuth client OAuth2 included in 12.3JGoogle (since 12.3)Many more in progress: JFacebook JMediawiki
    125. 125. New APIs in the future
    126. 126. New APIs in the futureJKeychain
    127. 127. New APIs in the futureJKeychain Secure Key-Value-Storage based on JRegistry
    128. 128. New APIs in the futureJKeychain Secure Key-Value-Storage based on JRegistryNew event system
    129. 129. New APIs in the futureJKeychain Secure Key-Value-Storage based on JRegistryNew event systemUnified Content Model
    130. 130. PSR
    131. 131. PSRPSR-2 support is almost complete very few files don’t comply for good reason the PSR-0 references is ignoredPSR-0 will be reconsidered when we move to namespaces. It’s all butrequired for ComposerPSR-1 will not be supported
    132. 132. “Another development that force me torethink ZF approach is the maturity ofJoomla-Platform itself. Ever since Joomladecided to split the cms and platform partof Joomla saperately, we noticed a markedimprovement in the platform code.” -Azrul, JomSocial
    133. 133. Thank you for your attention!Rouven Weßling@RouvenWesslingwww.rouvenwessling.deme@rouvenwessling.de
    134. 134. Thank you for your attention! My Workshops tomorrow: •Building a standalone application on the platform •Using the new MVC with a platform based web app Both in Room 150Rouven Weßling@RouvenWesslingwww.rouvenwessling.deme@rouvenwessling.de

    ×