SlideShare a Scribd company logo
1 of 139
What’s new in the
Joomla Platform?
2012 Edition




By Rouven Weßling
Who am I?
Who am I?

Active in the JBS since 2009
Who am I?

Active in the JBS since 2009
Platform maintainer for about a
year
Who am I?

Active in the JBS since 2009
Platform maintainer for about a
year
By pull requests most active
platform contributor
I talk really fast...
I talk really fast...


...so stop me whenever you need to! ;)
History
What’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 2011

First release (11.1) in July 2011 - mostly rebranded libraries from the CMS
Platform split (or “forked”) in early 2011

First release (11.1) in July 2011 - mostly rebranded libraries from the CMS

11.2 released only 3 weeks later
Platform split (or “forked”) in early 2011

First release (11.1) in July 2011 - mostly rebranded libraries from the CMS

11.2 released only 3 weeks later

 shipped with Joomla! 1.7.0
Platform split (or “forked”) in early 2011

First release (11.1) in July 2011 - mostly rebranded libraries from the CMS

11.2 released only 3 weeks later

 shipped with Joomla! 1.7.0

Not many big new features - but vastly better documentation.
Platform split (or “forked”) in early 2011

First release (11.1) in July 2011 - mostly rebranded libraries from the CMS

11.2 released only 3 weeks later

 shipped with Joomla! 1.7.0

Not many big new features - but vastly better documentation.

One notable exception is support for CLI applications
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 (JImage)
11.3 released in November 2011

 Support for web applications (JWeb)

 HTTP client abstraction (JHttp)

 image manipulation (JImage)

 GitHub API (JGitHub)
11.3 released in November 2011

 Support for web applications (JWeb)

 HTTP client abstraction (JHttp)

 image manipulation (JImage)

 GitHub API (JGitHub)

 Autoloader
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 winning
2012 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 support
PostgreSQL
Expanded database support
PostgreSQL
SQLite (PDO)
Expanded database support
PostgreSQL
SQLite (PDO)
Oracle (PDO)
Expanded database support
PostgreSQL
SQLite (PDO)
Oracle (PDO)
Previously supported
Expanded database support
PostgreSQL
SQLite (PDO)
Oracle (PDO)
Previously supported
 MySQL
Expanded database support
PostgreSQL
SQLite (PDO)
Oracle (PDO)
Previously supported
 MySQL
 Microsoft SQL
Database iterator
Database iterator
Allows you to traverse trough rows 1 by 1
Database iterator
Allows you to traverse trough rows 1 by 1
Very efficient for large datasets
Database iterator
Allows you to traverse trough rows 1 by 1
Very efficient for large datasets
 Even more efficient when you need to abort midway
Database iterator
Allows you to traverse trough rows 1 by 1
Very efficient for large datasets
 Even more efficient when you need to abort midway
Very inefficient for small datasets
Database iterator
Allows you to traverse trough rows 1 by 1
Very efficient for large datasets
 Even more efficient when you need to abort midway
Very inefficient for small datasets
JDatabaseDriver::getIterator()
New slim MVC
New slim MVC
Interface based
New slim MVC
Interface based
 JController, JModel, JView
New slim MVC
Interface based
 JController, JModel, JView
 Old classes renamed to JControllerLegacy, etc.
New slim MVC
Interface based
 JController, JModel, JView
 Old classes renamed to JControllerLegacy, etc.
 Some (very) basic classes (e.g. JModelBase, JModelDatabase) exist
New slim MVC
Interface 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)
How slim?
How slim?
interface JController extends Serializable

{

	   public function execute();

	   public function getApplication();

	   public function getInput();

}
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 package
Successor for JSimplecrypt
Crypt package
Successor for JSimplecrypt
Supports more algorithms
Crypt package
Successor for JSimplecrypt
Supports more algorithms
 3DES
Crypt package
Successor for JSimplecrypt
Supports more algorithms
 3DES
 Blowfish
Crypt package
Successor for JSimplecrypt
Supports more algorithms
 3DES
 Blowfish
 Rijndael 256
Crypt package
Successor for JSimplecrypt
Supports more algorithms
 3DES
 Blowfish
 Rijndael 256
Based on mycrypt - uses native code.
Crypt package
Crypt package
A well tested source for random data
Crypt package
A well tested source for random data
JCrypt::genRandomBytes
Crypt package
A well tested source for random data
JCrypt::genRandomBytes

If possible we tap openssl_random_pseudo_bytes
Crypt package
A well tested source for random data
JCrypt::genRandomBytes

If possible we tap openssl_random_pseudo_bytes
If not we gather our own entropy
Crypt package
A well tested source for random data
JCrypt::genRandomBytes

If possible we tap openssl_random_pseudo_bytes
If not we gather our own entropy
Based on a research paper that found issues in several PHP application’s
random number generation - including Joomla!
Crypt package
Crypt package
Interface JCryptPassword
Crypt package
Interface JCryptPassword

Implementation JCryptPasswordSimple
Crypt package
Interface JCryptPassword

Implementation JCryptPasswordSimple
 Supports MD5, PBDKF, Blowfish and “Joomla”
Crypt package
Interface JCryptPassword

Implementation JCryptPasswordSimple
 Supports MD5, PBDKF, Blowfish and “Joomla”
Allows switching out the password handling library
Crypt package
Interface JCryptPassword

Implementation JCryptPasswordSimple
 Supports MD5, PBDKF, Blowfish and “Joomla”
Allows switching out the password handling library
 for example PHP-PasswordLib
Crypt package
Interface JCryptPassword

Implementation JCryptPasswordSimple
 Supports MD5, PBDKF, Blowfish and “Joomla”
Allows switching out the password handling library
 for example PHP-PasswordLib
Not yet used by JUser
Composer support
Composer support
Dependency management for
PHP
Composer support
Dependency management for
PHP
Allows for far easier integration of
the platform into other projects
Composer support
Dependency management for
PHP
Allows for far easier integration of
the platform into other projects
De facto standard in the PHP
community
Composer support
Dependency management for
PHP
Allows for far easier integration of
the platform into other projects
De facto standard in the PHP
community
For more info see http://
getcomposer.org
...and much more
...and much more
File patcher
...and much more
File patcher
String inflecting and normalizing
...and much more
File patcher
String inflecting and normalizing
Stemming
...and much more
File patcher
String inflecting and normalizing
Stemming
new Router
What’s in it for the future?
Error handling
Error handling
JError is already on its way out
Error handling
JError is already on its way out
JObject::getError and
JObject::setError are going too
Error handling
JError is already on its way out
JObject::getError and
JObject::setError are going too
Exceptions are the future
Error handling
 JError is already on its way out
 JObject::getError and
 JObject::setError are going too
 Exceptions are the future


throw new Exception(“Ups!”);
throw new RuntimeException(“Ups!”);
throw new LogicException(“Ups!);
Package isolation
Package isolation
Currently the platform is one big package
Package isolation
Currently the platform is one big package
 42 subpackages
Package isolation
Currently the platform is one big package
 42 subpackages
We want to make them available as individual packages using composer
Package isolation
Currently the platform is one big package
 42 subpackages
We want to make them available as individual packages using composer
Makes it easier for applications to cherry-pick what they need
Package isolation
Package isolation
We have a pretty good understanding of the dependencies between
subpackages
Package isolation
We have a pretty good understanding of the dependencies between
subpackages
 There are too many
Package isolation
We have a pretty good understanding of the dependencies between
subpackages
 There are too many
We want to reduce them as much as feasible
Package isolation examples
Package isolation examples
DirectoryIterator instead of JFolder::files() and JFolder::folders()
Package isolation examples
DirectoryIterator instead of JFolder::files() and JFolder::folders()
Exceptions instead of JError
Package isolation examples
DirectoryIterator instead of JFolder::files() and JFolder::folders()
Exceptions instead of JError
Not using per-package exceptions (JDatabaseException,
LogException)
Unit testing and being testable
Unit testing and being testable
There’s a lot of old code that’s
hard or impossible to isolate for
testing
Unit testing and being testable
There’s a lot of old code that’s
hard or impossible to isolate for
testing
 JRequest
Unit testing and being testable
There’s a lot of old code that’s
hard or impossible to isolate for
testing
 JRequest

 JError
Unit testing and being testable
There’s a lot of old code that’s
hard or impossible to isolate for
testing
 JRequest

 JError

Replacing these classes with
object oriented replacements
Unit testing and being testable
There’s a lot of old code that’s
hard or impossible to isolate for
testing
 JRequest

 JError

Replacing these classes with
object oriented replacements
 JInput
Unit testing and being testable
There’s a lot of old code that’s
hard or impossible to isolate for
testing
 JRequest

 JError

Replacing these classes with
object oriented replacements
 JInput

 Exception
Removing CMS specific code
Removing CMS specific code
Moved in 3.0
 JEditor

 JHelp

 JToolbar
Removing CMS specific code
Moved in 3.0
 JEditor

 JHelp

 JToolbar
To be moved
 JComponentHelper

 JModuleHelper
Leveraging the power of PHP
Leveraging the power of PHP
Removing hacks and workarounds wherever possible (z.B.
JProfiler::getMemory)
Leveraging the power of PHP
Removing 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
Leveraging the power of PHP
Removing 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

Using SPL Exception (RuntimeException,
UnexpectedValueException)
Leveraging the power of PHP
Removing 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

Using SPL Exception (RuntimeException,
UnexpectedValueException)

Leveraging the SPL wherever possible (e.g. DirectoryItertor,
SplPriorityQueue)
Example
$var = JRequest::get();

echo count($var);




$input = new JInput;

echo = count($input);
More API consumers
More API consumers
JGithub (since 11.3)
More API consumers
JGithub (since 11.3)
OAuth client
More API consumers
JGithub (since 11.3)
OAuth client
 OAuth2 included in 12.3
More API consumers
JGithub (since 11.3)
OAuth client
 OAuth2 included in 12.3
JGoogle (since 12.3)
More API consumers
JGithub (since 11.3)
OAuth client
 OAuth2 included in 12.3
JGoogle (since 12.3)
Many more in progress:
More API consumers
JGithub (since 11.3)
OAuth client
 OAuth2 included in 12.3
JGoogle (since 12.3)
Many more in progress:
 JFacebook
More API consumers
JGithub (since 11.3)
OAuth client
 OAuth2 included in 12.3
JGoogle (since 12.3)
Many more in progress:
 JFacebook
 JMediawiki
New APIs in the future
New APIs in the future


JKeychain
New APIs in the future


JKeychain
 Secure Key-Value-Storage based on JRegistry
New APIs in the future


JKeychain
 Secure Key-Value-Storage based on JRegistry
New event system
New APIs in the future


JKeychain
 Secure Key-Value-Storage based on JRegistry
New event system
Unified Content Model
PSR
PSR
PSR-2 support is almost complete
 very few files don’t comply for good reason
 the PSR-0 references is ignored
PSR-0 will be reconsidered when we move to namespaces. It’s all but
required for Composer
PSR-1 will not be supported
“Another development that force me to
rethink ZF approach is the maturity of
Joomla-Platform itself. Ever since Joomla
decided to split the cms and platform part
of Joomla saperately, we noticed a marked
improvement in the platform code.”
	 	 	 	 	 	 	 	 	 	 	 -Azrul, JomSocial
Thank you for your attention!




Rouven Weßling

@RouvenWessling
www.rouvenwessling.de
me@rouvenwessling.de
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 150


Rouven Weßling

@RouvenWessling
www.rouvenwessling.de
me@rouvenwessling.de

More Related Content

What's hot

Making Py Pi Sux Less Key
Making Py Pi Sux Less KeyMaking Py Pi Sux Less Key
Making Py Pi Sux Less Key
Andreas Jung
 
Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011
Anton Arhipov
 
Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012
Anton Arhipov
 
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
mfrancis
 

What's hot (20)

Making Py Pi Sux Less Key
Making Py Pi Sux Less KeyMaking Py Pi Sux Less Key
Making Py Pi Sux Less Key
 
Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011
 
Professional Help for PowerShell Modules
Professional Help for PowerShell ModulesProfessional Help for PowerShell Modules
Professional Help for PowerShell Modules
 
Intro To OSGi
Intro To OSGiIntro To OSGi
Intro To OSGi
 
Intro to OSGi
Intro to OSGiIntro to OSGi
Intro to OSGi
 
Maven
MavenMaven
Maven
 
JRuby and You
JRuby and YouJRuby and You
JRuby and You
 
Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012
 
JRuby in Java Projects
JRuby in Java ProjectsJRuby in Java Projects
JRuby in Java Projects
 
Open Services Gateway Initiative (OSGI)
Open Services Gateway Initiative (OSGI)Open Services Gateway Initiative (OSGI)
Open Services Gateway Initiative (OSGI)
 
Web performances : Is It not the right time to (re)consider CMS ?
Web performances : Is It not the right time to (re)consider CMS ?Web performances : Is It not the right time to (re)consider CMS ?
Web performances : Is It not the right time to (re)consider CMS ?
 
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
Everything can be a bundle - making OSGi bundles of Java legacy code - Gunnar...
 
Gradle in a Polyglot World
Gradle in a Polyglot WorldGradle in a Polyglot World
Gradle in a Polyglot World
 
Virtual Bolt Workshop - April 28, 2020
Virtual Bolt Workshop - April 28, 2020Virtual Bolt Workshop - April 28, 2020
Virtual Bolt Workshop - April 28, 2020
 
Migrating to Java 11
Migrating to Java 11Migrating to Java 11
Migrating to Java 11
 
PyCon 2011 Scaling Disqus
PyCon 2011 Scaling DisqusPyCon 2011 Scaling Disqus
PyCon 2011 Scaling Disqus
 
CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011
 
S314168 - What's New in Enterprise Java Bean Technology @ JavaOne Brazil 2010
S314168 - What's New in Enterprise Java Bean Technology @ JavaOne Brazil 2010S314168 - What's New in Enterprise Java Bean Technology @ JavaOne Brazil 2010
S314168 - What's New in Enterprise Java Bean Technology @ JavaOne Brazil 2010
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1
 
Sql killedserver
Sql killedserverSql killedserver
Sql killedserver
 

Viewers also liked

Viewers also liked (11)

What is the Joomla Framework and why do we need it?
What is the Joomla Framework and why do we need it?What is the Joomla Framework and why do we need it?
What is the Joomla Framework and why do we need it?
 
vienna.js - Automatic testing of (RESTful) API documentation
vienna.js - Automatic testing of (RESTful) API documentationvienna.js - Automatic testing of (RESTful) API documentation
vienna.js - Automatic testing of (RESTful) API documentation
 
PHPcon Poland - Static Analysis of PHP Code – How the Heck did I write so man...
PHPcon Poland - Static Analysis of PHP Code – How the Heck did I write so man...PHPcon Poland - Static Analysis of PHP Code – How the Heck did I write so man...
PHPcon Poland - Static Analysis of PHP Code – How the Heck did I write so man...
 
Nordic APIs - Automatic Testing of (RESTful) API Documentation
Nordic APIs - Automatic Testing of (RESTful) API DocumentationNordic APIs - Automatic Testing of (RESTful) API Documentation
Nordic APIs - Automatic Testing of (RESTful) API Documentation
 
Static Analysis of PHP Code – IPC Berlin 2016
Static Analysis of PHP Code – IPC Berlin 2016Static Analysis of PHP Code – IPC Berlin 2016
Static Analysis of PHP Code – IPC Berlin 2016
 
vienna.html - Turn your Blog into Facebook Instant Articles + Contentful Intro
vienna.html - Turn your Blog into Facebook Instant Articles + Contentful Introvienna.html - Turn your Blog into Facebook Instant Articles + Contentful Intro
vienna.html - Turn your Blog into Facebook Instant Articles + Contentful Intro
 
API World 2016 - API Mashup - Combining for Fun and Profit
API World 2016 - API Mashup - Combining for Fun and ProfitAPI World 2016 - API Mashup - Combining for Fun and Profit
API World 2016 - API Mashup - Combining for Fun and Profit
 
API Days Paris - Automatic Testing of (RESTful) API Documentation
API Days Paris - Automatic Testing of (RESTful) API DocumentationAPI Days Paris - Automatic Testing of (RESTful) API Documentation
API Days Paris - Automatic Testing of (RESTful) API Documentation
 
php[world] 2016 - API Mashup - Combining APIs for Fun and Profit
php[world] 2016 - API Mashup - Combining APIs for Fun and Profitphp[world] 2016 - API Mashup - Combining APIs for Fun and Profit
php[world] 2016 - API Mashup - Combining APIs for Fun and Profit
 
Cmsascode
CmsascodeCmsascode
Cmsascode
 
Adapting our API for multiple platforms
Adapting our API for multiple platformsAdapting our API for multiple platforms
Adapting our API for multiple platforms
 

Similar to Joomla Day DK 2012

Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)
njbartlett
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache Jackrabbit
Jukka Zitting
 

Similar to Joomla Day DK 2012 (20)

Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)
 
JavaScript Miller Columns
JavaScript Miller ColumnsJavaScript Miller Columns
JavaScript Miller Columns
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
 
Java se7 features
Java se7 featuresJava se7 features
Java se7 features
 
The State of Wicket
The State of WicketThe State of Wicket
The State of Wicket
 
Managing Change
Managing ChangeManaging Change
Managing Change
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache Jackrabbit
 
Javascript Frameworks Comparison
Javascript Frameworks ComparisonJavascript Frameworks Comparison
Javascript Frameworks Comparison
 
Dev Environments: The Next Generation
Dev Environments: The Next GenerationDev Environments: The Next Generation
Dev Environments: The Next Generation
 
Iz Pack
Iz PackIz Pack
Iz Pack
 
Arquillian in a nutshell
Arquillian in a nutshellArquillian in a nutshell
Arquillian in a nutshell
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
Composer the right way [SweetlakePHP]
Composer the right way [SweetlakePHP]Composer the right way [SweetlakePHP]
Composer the right way [SweetlakePHP]
 
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
 
Tomcat + other things
Tomcat + other thingsTomcat + other things
Tomcat + other things
 
Composer The Right Way - PHPUGMRN
Composer The Right Way - PHPUGMRNComposer The Right Way - PHPUGMRN
Composer The Right Way - PHPUGMRN
 
Composer the right way
Composer the right wayComposer the right way
Composer the right way
 
Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3
 
Plugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsPlugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGems
 

Joomla Day DK 2012

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. -Talk about what the goal was\n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. -Talk about autoloader later\n
  16. -Talk about autoloader later\n
  17. -Talk about autoloader later\n
  18. -Talk about autoloader later\n
  19. -Talk about autoloader later\n
  20. -Talk about autoloader later\n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. Old MVC essentially from 1.5\n
  40. Old MVC essentially from 1.5\n
  41. Old MVC essentially from 1.5\n
  42. Old MVC essentially from 1.5\n
  43. Old MVC essentially from 1.5\n
  44. \n
  45. \n
  46. \n
  47. JSimpleCrypt now internally uses JCryptSimple\n\n
  48. JSimpleCrypt now internally uses JCryptSimple\n\n
  49. JSimpleCrypt now internally uses JCryptSimple\n\n
  50. JSimpleCrypt now internally uses JCryptSimple\n\n
  51. JSimpleCrypt now internally uses JCryptSimple\n\n
  52. JSimpleCrypt now internally uses JCryptSimple\n\n
  53. /dev/urandom, filestat, rand, mt_rand, memory useage\n
  54. /dev/urandom, filestat, rand, mt_rand, memory useage\n
  55. /dev/urandom, filestat, rand, mt_rand, memory useage\n
  56. /dev/urandom, filestat, rand, mt_rand, memory useage\n
  57. /dev/urandom, filestat, rand, mt_rand, memory useage\n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. Static methods are a hint to these classes\n
  88. Static methods are a hint to these classes\n
  89. Static methods are a hint to these classes\n
  90. Static methods are a hint to these classes\n
  91. Static methods are a hint to these classes\n
  92. Static methods are a hint to these classes\n
  93. \n
  94. \n
  95. JRegistry implements JsonSerializable\nJInput implements Countable\n
  96. JRegistry implements JsonSerializable\nJInput implements Countable\n
  97. JRegistry implements JsonSerializable\nJInput implements Countable\n
  98. JRegistry implements JsonSerializable\nJInput implements Countable\n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. Duke Nukem Forever of the Joomla world\n
  108. Duke Nukem Forever of the Joomla world\n
  109. Duke Nukem Forever of the Joomla world\n
  110. Duke Nukem Forever of the Joomla world\n
  111. \n
  112. \n
  113. \n