lithium
DESCRIPTION
Choosing the right framework for your project can be tricky and there are a lot of considerations to be had. We'll help you navigate the waters and set up some criteria, then talk about how Lithium fares in each of these areas. We'll discuss things like interoperability, business value, environmental requirements, data storage and much more.TRANSCRIPT
Introduction to Lithium
Elizabeth Naramore | CodeWorks 2012
Criteria for Choosing a Framework (or not)
2
3Requirements
License
Extensibility
Community
Business Value
InteroperabilitySecurity
Documentation
Testing
Configurability
Caching
Scalability
Localization
Web ServicesReputation
Commit Activity
Architecture
Data StorageCode
Requirements
4
Requirements- PHP 5.3+- Web Server
5
License
6
License- New BSD (3 clause)- https://github.com/UnionOfRAD/lithium/blob/
7
8
Extensibility
9
10
Core
li3_quality li3_queue li3_docs li3_lab li3_design
li3_lldr
li3_sqlsrv
li3_cldr
li3_accessli3_facebook
li3_oauth
li3_botli3_mailer
li3_geo
li3_filesystem
Extensibility- http://lithium101.com
- http://lithify.me/docs/manual/extending-lithium/plugins.wiki
11
Extensibility- Github search- Lithium Bootstrap: https://github.com/tmaiaroto/li3_bootstrap- Embed Wordpress with Lithium: https://github.com/mackstar/li3_wordpress
12
Community
13
Community:- Can I get help? Where?- Can I hire someone knowledgable?- Can I contribute? How?
14
Support:- IRC #li3 on Freenode- http://sphere.orchestra.io- http://github.com/UnionOfRAD/lithium/issues- http://lithium101.com- http://stackoverflow.com/questions/tagged/lithium
15
Hiring
16
Contributing:- http://lithify.me (front page!)- 13 core contributors- IRC #li3-core on Freenode
17
Business Value
18
19
Interoperability
20
Any third party code can be used as a library.
21
Libraries are managed by the lithium\core\Libraries class, which handles auto-loading, service location, and introspecting available classes. PSR-0 compatible.
https://github.com/UnionOfRAD/lithium/blob/master/core/Libraries.php
22
Security
23
Lithium provides basic functionality for user authentication, data sanitization, filtering input/escaping output and CSRF protection. Form signing is in testing.
24
Documentation
25
Documentation:- Are there articles/tutorials on using it?- Can I understand the code?- Is there information on contributing?
26
Documentation (end user):- http://lithify.me/docs/tutorial- http://github.com/UnionOfRAD/lithium.wiki- http://lithium101.resources- http://lithify.me/docs/manual/quickstart
27
Documentation (in code):
For example, in Libraries.php, roughly 42% of the lines of code are comments.
Not just what, but how and why.
28
Documentation (contributing):
http://lithify.me (front page!)https://github.com/UnionOfRAD/lithium/wiki/Contributing
29
Well Tested
30
Let’s see if the build’s passing.
http://travis-ci.org/#!/UnionOfRAD/lithium
31
Testing Frameworks
32
Lithium has a custom,
embedded testing framework to make it easy for you to run tests.
33
http://lithify.me/docs/manual/quality-code/testing.wiki
34
35
Configurability
36
https://github.com/UnionOfRAD/lithium/blob/master/core/Environment.php
37
Performance
38
Universal Cache Class:- Memcache- APC- File- Redis- Xcache- Custom
39
https://github.com/UnionOfRAD/lithium/tree/master/storage/cache/adapter
40
Scalability
41
42
Decoupled and flexible.
43
Localization
44
45
Core
li3_quality li3_queue li3_docs li3_lab li3_design
li3_lldr
li3_sqlsrv
li3_cldr
li3_accessli3_facebook
li3_oauth
li3_botli3_mailer
li3_geo
li3_filesystem
http://lithify.me/docs/manual/globalization/readme.wiki
46
Web Services
47
https://github.com/UnionOfRAD/lithium/blob/master/net/http/Service.php
48
- https://github.com/MLKiiwy/li3_amazon
49
Activity
50
https://github.com/UnionOfRAD/lithium/graphs/commit-activity
51
Reputation
52
Architecture
53
- MVC- Adapters/Helpers- Aspect Oriented- Uses PHP 5.3 Features
54
http://lithify.me/docs/manual/lithium-basics/architecture.wiki
55
Data Storage
56
- MySQL- SQLite3- CouchDB- MongoDB
57
For More Info:58
http://lithify.me
http://pages.engineyard.comWCEYIndroducingLithium072612.html
https://github.com/UnionOfRAD/lithium
http://dl.dropbox.com/u/895461/lithium/lithium%20data%20sheet.pdf
http://lithium101.com
59
@ElizabethN
https://joind.in/7097 (abstract is incorrect, don’t hate me)