Warning: This page has not been updated in over over a year and may be outdated or deprecated.
plug-in_architecture
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
plug-in_architecture [2011/04/08 14:26] – demiankatz | plug-in_architecture [2015/08/25 15:37] (current) – demiankatz | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Plug-in Architecture ====== | ====== Plug-in Architecture ====== | ||
- | ===== The Problem ===== | + | // The content |
- | + | ||
- | Upgrading and extending VuFind should be easier -- especially when it comes time to upgrade to a new version. | + | |
- | + | ||
- | ===== The Current State ===== | + | |
- | + | ||
- | VuFind currently has several different types of plug-ins (authentication mechanisms, record drivers, ILS drivers, etc., etc.). | + | |
- | + | ||
- | ===== Possible Solutions ===== | + | |
- | + | ||
- | Feel free to add to this section -- the idea is currently to list possible solutions | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ==== Use an existing PHP framework? ==== | + | |
- | + | ||
- | Since VuFind' | + | |
- | This [[http:// | + | |
- | + | ||
- | === Zend Framework === | + | |
- | + | ||
- | This one is relatively lightweight and seems like a good candidate if we are also interested in making use of Maven. | + | |
- | + | ||
- | === CodeIgniter === | + | |
- | + | ||
- | Another popular lightweight framework, available [[http:// | + | |
- | + | ||
- | === Joomla === | + | |
- | + | ||
- | This project advertises itself as both a CMS and an application framework. | + | |
- | + | ||
- | === Kohana === | + | |
- | + | ||
- | [[http:// | + | |
- | + | ||
- | ==== Borrow ideas from Rails? ==== | + | |
- | + | ||
- | Obviously, VuFind is going to remain a PHP-based project; if you want discovery on Rails, [[http:// | + | |
- | + | ||
- | * Render shared page layouts AFTER action-specific page contents -- this way you can pass page-specific details (like title tag contents) from template to template rather than having to embed it in the controller. | + | |
- | * Share the URL routing logic with the templates so that the same logic which resolves incoming requests can also be used to build outgoing links. | + | |
- | + | ||
- | (feel free to expand this list if you have strong feelings about any other Rails conventions) | + | |
- | + | ||
- | ==== Reconsider Smarty? ==== | + | |
- | + | ||
- | Smarty templates are not as popular as they once were, though they may still serve some useful functions within the library environment. | + | |
- | + | ||
- | + | ||
- | ==== Does PHP 6 Help? ==== | + | |
- | + | ||
- | PHP 6 is going to introduce namespace support -- might this be helpful | + | |
- | + | ||
- | + | ||
- | ===== Redesign Goals ===== | + | |
- | + | ||
- | As of 4/8/11, these are Demian' | + | |
- | + | ||
- | * Maintain existing URL routes for compatibility, | + | |
- | * Maintain compatibility with existing configuration files (either directly or via an upgrade script) | + | |
- | * Replace existing controller model with something more flexible (for example, well-designed context switching would be helpful for your JSON/XML suggestions) | + | |
- | * Replace Smarty views with something PHP-based | + | |
- | * Reduce external dependencies on obsolete code (i.e. deprecated PEAR libraries) | + | |
- | * Make file organization and class naming more consistent (i.e. sort out the current web/sys quagmire) | + | |
- | * Ensure that everything (models, views, controllers, | + | |
---- struct data ---- | ---- struct data ---- | ||
+ | properties.Page Owner : | ||
---- | ---- | ||
plug-in_architecture.1302272814.txt.gz · Last modified: 2014/06/13 13:13 (external edit)