Zend
From OpenEMR Project Wiki
Overview
- On 6/28/14, code requiring the Zend library was incorporated into the OpenEMR codebase. This was brought in by ZH Healthcare for a Module feature which is a large part of the Meaningful Use 2 project.
Codebase Import
- On 2/13/16 (for OpenEMR version 4.3.1), upgraded the embedded Zend 2 library to version 2.4.9 (this was necessary to support PHP7):
- On 6/28/14, imported the following commits (in chronologic order):
- 212e69 - Main Zend Module Commit.
- WhyModulesInstaller.pdf - http://sourceforge.net/p/openemr/code-review/232/attachment/WhyModulesInstaller.pdf
- ModuleInstaller-DeveloperGuide.pdf - http://sourceforge.net/p/openemr/code-review/232/attachment/ModuleInstaller-DeveloperGuide.pdf
- Refer line no.26 in zend_modules/init_autoloader.php for setting up ZF2 Library Path Settings.
- 6e36d2 - Removed a function in prior commit that is dangerous and not used.
- 4befb7 - Set correct permissions for application.config.php file
- Required changes in the installation script and ubuntu/debian scripts
- 88be3c - Zend 2 library
- This is the actual Zend 2 library(version 2.2.5). This may be only temporary as developers learn to use this and if can figure out way for end users to install as an external dependency.
- 212e69 - Main Zend Module Commit.
Configuring Zend
PHP
Need to use php version 5.3.3 or greater.
- (Note that if we upgrade Zend to 2.5.0 or greater in future(which is likely at some point), then will need php 5.5+)
Apache
This section is to document best way to configure Zend with apache. It appears following two things need to be completed in apache for zend stuff to work:
- enable "rewrite" mod in apache
- allow "AllowOverride" in apache
- There are some security considerations here(this allows use of .htaccess files). Ideally would have following set up:
- Apache's main config file would turn this off.
- Turn this on in OpenEMR directory
- Turn this off in the OpenEMR directories that allow uploaded files (such as sites/default/documents)
- Need to test above setup and if works, then need to place in the setup.php instructions and also set up for the ubuntu/mint/debian package.
- There are some security considerations here(this allows use of .htaccess files). Ideally would have following set up:
Above is discussed on the following threads:
TO DO
- Document how to get Zend configured for all OS's (see above "Configuring Zend" section for details).
Related Forum Threads