diff options
author | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2015-01-11 13:49:15 +0100 |
---|---|---|
committer | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2015-01-11 13:49:15 +0100 |
commit | ae9d580fe7a79052d614b7d48d8feb54836fe334 (patch) | |
tree | 874ed8c758b51a8c6f1b280620d70725f5936ac1 /zend/eval.cpp | |
parent | 1c663ea116121469e37ad2cb9480387c16c0236b (diff) |
added include(), require(), include_once() and require_once() methods, based on the Php::File class (feature built based on inspiration from pull request #147);
Diffstat (limited to 'zend/eval.cpp')
-rw-r--r-- | zend/eval.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/zend/eval.cpp b/zend/eval.cpp index 32d807a..4c4bffc 100644 --- a/zend/eval.cpp +++ b/zend/eval.cpp @@ -63,6 +63,71 @@ Value eval(const std::string &phpCode) } /** + * Include a file + * @param filename + * @return Value + */ +Value include(const std::string &filename) +{ + // we can simply execute a file + return File(filename).execute(); +} + +/** + * Include a file only once + * @param filename + * @return Value + */ +Value include_once(const std::string &filename) +{ + // we can simply execute a file + return File(filename).execute(); +} + +/** + * Require a file + * This causes a fatal error if the file does not exist + * @param filename + * @return Value + */ +Value require(const std::string &filename) +{ + // create the file + File file(filename); + + // execute if it exists + if (file.exists()) return file.execute(); + + // trigger fatal error + error << filename << " does not exist" << std::flush; + + // unreachable + return nullptr; +} + +/** + * Require a file only once + * This causes a fatal error if the file does not exist + * @param filename + * @return Value + */ +Value require_once(const std::string &filename) +{ + // create the file + File file(filename); + + // execute if it exists + if (file.exists()) return file.once(); + + // trigger fatal error + error << filename << " does not exist" << std::flush; + + // unreachable + return nullptr; +} + + +/** * End of namespace */ } |