Lithium
-
Upload
enaramore -
Category
Technology
-
view
380 -
download
1
description
Transcript of Lithium
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)