Download


LATEST DELIVERABLES

Stable branch:
Dev branch:
Go to Lion's Bamboo



Stable branch


Lion framework 1.3.9 (2009/06/23)

Version 1.3.9
Date 2009/06/23
Changelist 98
Lion framework available deliverables:
File MD5 Size
Lion-1.3.9-stable.tgz 5EB7D45B717CCFACC6C0214BF96CA313 6.79 MB
Lion-1.3.9-stable.zip 2433154FCE6D3B62C518CAF30783AFF7 8.71 MB
Documentation:
File MD5 Size
Doc-1.3.9-stable.tgz 9B56776FEF34D3E76CE4EA56B1A8D06F 4.32 MB
Tutorial source codes:
File MD5 Size
tutorial-php-login-1.3.9-stable.tgz 64ED31B3EDA8B361E6627476286BB7C6 6.79 MB
tutorial1-1.3.9-stable.tgz 623BC5DF9AC108F698FE4245CF2B33C9 6.78 MB
tutorial4-1.3.9-stable.tgz 055C41E6E3E84A71832367AB97A1FA5B 6.78 MB
tutorial2-1.3.9-stable.tgz 041BB9D6C905A18E331E2424F7E1DAC7 6.78 MB
tutorial3-1.3.9-stable.tgz A8757341EB1F8E133DBE397D76D0695B 6.78 MB

Change log


Changes on version 1.3.9

- Added: scope attribute to context instances definition, to align the xml spec to the spring dependency injection schemma.
- Improved: Allow includepath to specify autoloaders. Difference is that class loader declares autoloaders before reading the configuration, ensuring that all the autoloaders are ready to find class files during the request lifecycle.
- Fixed: A bug when executing admin controllers (like clearcache) from the command line since the commandline controller tries to access to the wrong (old) admin directory
- Fixed: A bug on templates included in other templates via the smarty include directive, to avoid the double execution of the endRender method for the same component render.
- Fixed: Ensure that all the components in session were rendered last time their pages were requested, otherwise expire them.

Changes on version 1.3.8

- Deprecated the bootstrap capability. Now an empty project is distributed within the lion framework deliverable
- Refactorized the directory structure to achieve a better understanding on where is everything located in
- Added cache capability at front controller level, so we can cache the whole page and serve the cached version.
- Plugins and component improvements:
(1) Plugins are detected as soon as they are installed (or removed).
(2) Plugins can contain everything they need to work inside their directories, including configuration and includepath files. This ease the addition and removal of plugins by just placing or removing directories.
- Global session has been deprecated. Now the way to access to the session instance is through the context (i.e. __ApplicationContext::getInstance()->getSession()).
- Improved configurationLoader in order to accept expressions like /directory/.../*.xml (all .xml under /directory/ recursively)
- Improved classLoader in order to search for files includepath.xml recursively (vs. all the files contained in the includepath directory). So plugins and components can contain their own includepath files.
- Fixed: Big cleanup in default configuration files.
- Fixed: Removed deprecated stream wrappers (config and log).
- Fixed: Removed unnecessary method getId and setId from the __SystemResource base class
- Tutorial source codes are now downloadables as standalone application ready to run.


Changes on version 1.2.7

Added captcha component + validator
Fixed: A bug in reverse AJAX affecting safari 3.x

Changes on version 1.2.5

Improved: reverse ajax, optimized for firefox and safary by using the x-mixed-replace content type
Improved: Added refresh method to actionbox component, alias of execute
Improved: Added refresh method to event handlers, resulting in a refresh of the container actionbox in case the view is contained in
Improved: Added check in order to ensure that view associated event handlers implements __IEventHandler interface. __EventHandler and subclasses already implement this interface.
Improved: Added __XmlHttpResponse class (subclass of __HttpResponse) to be used for ajax responses
Improved: Added local lion.ini directives file (optional) to rewrite general directives
Fixed: Minor bug in __ResourceManager, in order to let the getInstance method (singleton) to retrieve the instance from the context (vs. from an static member)
Fixed: Let the route manager get the routes from the application context (never from the current context, since the application context must be the one in charge of handle routes and redirect to the rest of context if apply)
Fixed: A bug when referencing .js and .css libraries in large url paths


Changes on version 1.2.4

Fixed: Improved context IoC: If a factory is set to a context-instance, the class attribute is optional
Fixed: Improved error page to show extended information regarding the trace
Fixed: Improved performance on configuration load, also created a method to load a configuration from an string (loadConfigurationContent)


Changes on version 1.1.125

- Added: HTML-Purifier as the default filter library bound to valueholder components
- Added: Shortcut to I18n resources from the __ApplicationContext (as explained within the documentation)


Changes on version 1.1.124

*** First stable version of Lion ***

- Added: Facade to log4php as the default logger implementation
- Added: Support to define composite and template based components
- Added: RemoteService component (a component designed to call server-side specific methods from the client)
- Fixed: constructor-arg did not work in certain conditions defining context instances
- Fixed: Improved the synchronization algorithm/protocol between client and server-side components
- Fixed: General improvements affecting the stability and performance
- Added: The encryptor (__IEncryptor iface) as part of the security framework, with the HashEncryptor as a OOTB implementation (used in the authentication process)
- Fixed: Removed parameter preprocessor mechanism, merged with the intercepting filter (improving performance and easying the preprocessing of general purpose parameters)

Changes on version 1.1.120

- Fixed: DataCollector component as a non-poolable component.
- Fixed: Model service to be able to also reference context instances (see the model documentation)
- Documentation: Added more documentation regarding the model, the lion architecture and type of components

Changes on version 1.1.119

- Fixed: A bug resulting in a bad synchronization between client-server when setting client properties by ussing javascript (i.e. hidding a component by javascript was not synchronized with the component propertly at server).
- Added: New documentation regarding dependency injection capabilities on lion framework
- Fixed: Several minor bugs detected while building a real application
- Documentation: Added missing part on dependency injection section. Also added some documentation on component model

Changes on version 1.1.116

- Important improvements on client side code generation, accelerating client execution while improving cross-browser compatibility:
1. Added new .js loader (JIT) to perform javascript lazy loading.
2. Group all generated javascript code at bottom, while all .js inclusions at top.
3. Refactorized client code to just require a single .js inclusion (lion.js)

Changes on version 1.1.115

- Added: Method setApplicationDomain to the __Uri class, in order to build absolute urls for different domains, even if they are different to the current server one. Also usefull to execute controllers from the command line.
- Added: fromArray and toArray method to __RolesCollection class, in order to build from and to an array of roles in one single shot.
- Added: hasAccess and hasPermission methods to __User (also added to the __IUser interface), in order to check if an user has access to a given system resource as well as check if an user has a given permission.
- Added: event handling capability at component level, meaning that components can also contain predefined logic to handle certain events.
- Fixed: Some minus bugs found during development of real web applications with the lion framework, as part of the stability phase.


Changes on version 1.1.113

- Fixed: Added missing class file for __ConstructorArguments Collection class (ticket #12)
- Fixed: Component validation rule to have 2 methods: pattern and format (instead of just one single method validFormat)
- Upgraded: livevalidation javascript library from 1.2 to 1.3
- Improvement: I18n string loading performance
- Added: event handler's create method, which is called first time an event handler is created
- Added: the DateBox component, a textbox with a pickable calendar. This component uses the Dynarch calendar, by Mihai Bazon under GNU LGPL.
- Added: the Area component (more like a div), and the pane component (like an inputgroup).
- Added: the resetValueHolders method on both __EventHandler and __ComponentHandler classes. Really usefull to reset values to null for all value holders contained in a view. This method also reset any validation against any value holder.
- Added: 2 new components: The pane and the area
- Fixed: Do not generate the startup async message for empties messages
- Fixed: A bug in the ActionBox component producing multiple executions of the same action.
- Fixed: A bug in the ActionIdentity, resulting in a wrong URL generation according to route definitions
- Added: the setAuthenticatedUser to the __AuthenticationManager, in order to allow to set the authenticate user without having to execute authenticators (i.e. to authenticate a user just after registration process)
- Fixed: A bug in ProtectedSection component, which makes the section to be hidden even if the required permission was covered by active roles
- Fixed the history manager in order to register the last request just once the request has finished
- Added the DataCollector component
- Fixed the component handler and component pool to store non-poolable components during the request.
- Fixed the action box to avoid double renders during the same request
- Fixed a bug on __UIEvent to prevent add a non-array instance as extra_info
- Improvement: Accelerate URL building by pre-caching some static calculations
- Improvement: Removes call to StreamWrapperManager (also the class, because is more like unnecessary due to the small piece of job it does)
- Fixed: a typo on Route class (by adding the 2 underscore prefix to a class reference)
- Fixed: the validation event on forms after submit, to take into account the validation result on the submit intercepting filter
- Added: 2 new methods to the __Authentication Manager: isAuthenticated and isAnonymous
- Added: the persist property to components. Even if the component implements __IPoolable, persist="false" will force the component to being not pulled
- Added: Experimental deliverable type PHAR, embedding the whole framework within a single .phar file.
- Fixed: the ResourceProviderSectionHandler to raise a __ConfigurationException instead of delegating to the __ExceptionFactory, which results in an infinite loop in certain conditions

Changes on version 1.0.95

- Added a new client end-point: __JavascriptOnDemand, which allows to send javascript to client to be executed.
- Added the magic __call method to base class __UIComponent in order to intercept calls to component methods. The __call will notify to associated end-point the call request. After that it will try to execute a method with prefix 'do' + same name.
- Change default set of component writers in order to render component initial values without ussing javascript when a page is loaded, in order to be compatible with non-javascript browsers.
- Fixed Ticket #7: Event handler callback naming convention: Instead of ussing the naming convention _on, remove the "on" and let it just as _.
- Fixed client end-points (valueholder type) to do not send the status if it has not changed since last time it was updated
- Changed instances and instance xml tags to context-intances and context-instance to define context instances. Also deprecated the $context->getInstance($instance_id) method. Use getContextInstance instead of in order to retrieve a context instance.
- Fixed Ticket #3: Implemented the validate event, improved the validation rule and link components to validation rules (new component method: validate, as a proxy method to the related validation rule method)
- Fixed: Removed types package (not used)
- Fixed: Lion administrative area footer to show the proper links (license, about, contact and lion home)
- Fixed: Added to the bootstrap success page a link to the test page (the one to check if lion is working)
- Fixed: Added setRoles method to the __User class in order to be able to set all the roles at the same time when loading users
- Documentation

Changes on version 1.0.91

- Fixed: Raise an exception when a non-existing model service is tried to be executed
- Fixed: Raise an exception when an unexistent route id is set to an __Uri instance
- Fixed: Admin area to handle command line execution if no controller/actions are specified.
- Renamed admin area controllers files by removing the double underscore prefix.
- Fixed: The cache manager to allow specific ttl. If not specified, the cache handler will use the default one.
- Fixed: Small changes in the cache API to be as similar as possible to the session API.
- Fixed: Check if cache directory exists on __MicroCache class (the one used by the __ClassLoader)
- Fixed: Adapted the protected section component according to last component model refactorization.
- Fixed: Protected section must inherit from __UIContainer since it's a component container.

Changes on version 1.0.89

- Addapted the old __FormComponent to the current component model (ticket #4 and #5)
- Added the onSubmit event, raised on server side after submitting a form
- Created the __IUriContainer interface, implemented by component classes containing an uri (i.e. links, forms, etc...)
- Created the __UriContainerWriterHelper class, to delegate to for url generation on component rendering process
- Changed __FormComponent and __UriComponent to implement the __IUriContainer
- Changed writers for both classes to delegate on __UriContainerWriterHelper
- Fixed: removed a wrong html tag generated by the HtmlComponentRender
- Fixed: The __ValidationRuleHtmlWriter to render the component according to the live-validation library (ticket #2)

Changes on version 1.0.88

- Added checkbox and optionbox components
- Adapted the client component model to handle the checkbox and optionbox components (the __ValueHolderFactory to create a __CheckableElementProperty in case the element type is a checkbox or radio)
- Added the renderContent method to __ComponentWriter class in order to have the capability to render contents enclosed by component tags (see doc for more info).
- Fixed: The spinner component was rendered even if the component had the spinner=false property. Now it's just rendered if the spinner property is != false/no.

Changes on version 1.0.86

Improvements:

- Refactorized cache related classes:
- Cache is taken from the context
i.e. __ApplicationContext::getInstance()->getCache()
- Added the cachehandler facade for different cache storage implementations.
- Added 2 initial cachehandlers: cachelite and memcache
- Added __CacheSectionHandler implementing the __ISectionHandler. This class caches the value returned by the doProcess method (the abstract one to implement in child classes).
- Changed all section handlers ootb to inherit from __CacheSectionHandler
- Added a new class: __UrlHelper to provide an static method to help resolving relative urls

Fixes:

- Moved hardcoded values from __RuntimeDirectives class to a .ini file (lion.ini)
- Fixed: __Uri class to return relative Urls by default (getUrl() method)
- Fixed: A typo in componentmodel javascript tags

Changes on version 1.0.82

- Fixed (bug affecting PHP 5.1.x): Added stripslashes when call to JSON_Services::decode method - Fixed: creation of .tgz deliverable file to keep file permissions (files: 644, directories: 755). Thanks Mariano :) - New feature: Added the onInit event. This event is executed just before painting the component. - Deprecated: The event handler init method (it's not called anymore). Use the onInit event instead of. - Fixed: The onLoad event was not being raised.

Changes on version 1.0.81

First *PUBLIC* lion|framework beta deliverable Please send your feed to aparraga@lionframework.org