====== Lazy Initialized Object Notation ====== ===== What? ===== LION is a notation created to simplify and unify creation and storing Lazy Initialized Objects. You may wonder what lazy initialization is. Answer to your first question is here, [[http://en.wikipedia.org/wiki/Lazy_initialization | in Wikipedia]]: "In computer programming, lazy initialization is the tactic of delaying the creation of an object, the calculation of a value, or some other expensive process until the first time it is needed." ===== Why? ===== I needed it. I create framework for PHP, and I want it to be flexible and as powerful as it can be. Good data control needs many objects - but not all of them have to be created each script execution. They must not. LION keeps objects as strings or arrays and they are converted to objects when needed, and only needed ones are created. Unified way to handle such objects as mentioned above can make development process faster and better. When I was developing it in PHP, I thought it can be unified. So I do it. ===== Features ===== - Creating objects by class name - Passing one or many arguments - Holding state of object - Support for factory methods - Support for primitives ===== Bug tracking ===== Bug tracker is installed here: [[http://bt.lukaszk.net/]]. LION project is the one described here. LION PHP (ex.) is its implementation. ===== Specification ===== * [[projects:lion:spec:1.0]] ===== Implementations ===== * [[projects:lion:impl:php]] * [[projects:lion:impl:java]] * [[projects:lion:impl:python]] * [[projects:lion:impl:js]]