Version 10, last updated by Thiago Mata at November 12, 2009 04:06 UTC
Components
Like a real manager know what professional it is the responsable for each work, or even it not has a professional to some work, this component has the task to say what component it is assuming the paper needed into the framework.
For example, exists into the framework a log component, but if you decided to replace the default component log for some what you have maded, if your component implements the interface needed, you just need to inform to the manager the name of the new component into the paper of log component of the framework. After do that, all the times when the framework need to log something, it will ask to the manager what is the "professional" to this work ( to log ), and the manager will bring an instance of your log component what will be used into all the system whitout change any one line of code.
You can also remove some component of the work, leaving the work without workes. The others component what don't depend of this component but used it if avaliable, will keeping it's work without it. All this without change any line of code, just changing the configurations of the component manager.
The template component, for example, use the cache component, if avaliable. But if the cache component be not avaliable, the template component will keep working well, just will lose some features what depend of the cache component. To learn more, visit the doxygen phpdoc description of this component.
This it is the component what is responsable for append the rules of autoload of the system and apply them to load the correct file when a class is needed.
This component it is allways loaded and into it's default rule group make it able to load the others components into the default folder or extra components into his folder.
You can append new rules into the autoload component, what make possible, it find new classes into new files using some rule unique for each case. The organization of your classes don't will be determinated by the framework any more. You say the rules, you can changed and append new rules, as you wish. All that into a real easy to use object organization.
This componenet make possible the minimum of classes be load by default. What make the framework more fast without be more complicated. To learn more, visit the doxygen phpdoc description of this component.
This component control the cache of files. It is a easy way to make your project run faster. It's compare the file size, file date of change and md5 to determinate if the original file has change. To learn more, visit the doxygen phpdoc description of this component.
This component controlls how the framework should deal with errors. For know more, visit the doxygen phpdoc description of this component.
This component control what must be loged and how. To learn more, visit the doxygen phpdoc description of this component.
The template will be XML files what will be converted into object trees, like DOOM, using this component. It's receive a XML file and create a PHP code what create the XML tree into a Object Tree. If the cache element be active, this creation of the php file will be maded just when necessary. For know more, visit the doxygen phpdoc description of this component.
The component template it is, probaly, the must characteristic component of the coruja framework. The tags are real PHP objects elements, the screens are load into a sequence of execution of valids XMLs files, interacting each other. The result will allways be a XHTML valid. Into the object template interactions can be maded as object tree, such as DOOM, keeping the valid XHTML result. Wrong tags or parameters will generate a error into the server side, in the first execution. Interaction as AJAX will be really more easy to do. Inteligent components as mask elements, paging grids, can be easy maded. Every into a organized and object oriented structure. To learn more, visit the doxygen phpdoc description of this component.
Annotations can provide informations about your methods, classes and attributes that can be useful to others human readers, IDEs and also to the very code execution. If you want to get the annotations of the class, you must create a class that implements the CorujaAnnotationClassInterface. If you want to get the annotations of the method you will need to create a class that implements the CorujaAnnotationMethodInterface. Following this ideia the CorujaAnnotationAttributeInterface can be created as well. In the class you want to get the annotation information add the annotation information @AnnotationClass, @AnnotationAttribute and @AnnotationMethod. This component can be usefully to make permission controll and feature controll, making a action avaliable as web service just appending a annotation @WebService for example. To learn more, visit the tutorial of this component and his doxygen phpdoc description.
This is a external project what will be used to create some diagrams of how this frameworks works. To learn more, take a look into http://coruja.assembla.com/wiki/show/codetodiagram.