File: 0.00.1a/core/IncludeManager.php (View as Code)

1: 2: /* ------------------------------------------------------------- 3: This file is part of FreeDESK 4: 5: FreeDESK is (C) Copyright 2012 David Cutting 6: 7: FreeDESK is free software: you can redistribute it and/or modify 8: it under the terms of the GNU General Public License as published by 9: the Free Software Foundation, either version 3 of the License, or 10: (at your option) any later version. 11: 12: FreeDESK is distributed in the hope that it will be useful, 13: but WITHOUT ANY WARRANTY; without even the implied warranty of 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: GNU General Public License for more details. 16: 17: You should have received a copy of the GNU General Public License 18: along with FreeDESK. If not, see www.gnu.org/licenses 19: 20: For more information see www.purplepixie.org/freedesk/ 21: -------------------------------------------------------------- */ 22: 23: /** 24: * Include class handles most php source file includes at runtime 25: **/ 26: 27: class IncludeManager 28: { 29: /** 30: * Reference to FreeDESK class 31: **/ 32: private $DESK = null; 33: /** 34: * Base directory 35: **/ 36: private $baseDir = "./"; 37: 38: /** 39: * Constructor 40: * @param object $freeDESK freedesk main object 41: * @param string $baseDir base directory 42: **/ 43: function IncludeManager(&$freeDESK, $baseDir) 44: { 45: $this->DESK = &$freeDESK; 46: $this->baseDir = $baseDir; 47: } 48: 49: /** 50: * Include a File 51: * @param string $filepath Relative filepath from base dir 52: * @param bool $required Is opened using require() rather than include() (default false) 53: * @param bool $once Is opened using include_once() (default false) 54: **/ 55: function IncludeFile($filepath, $required=false, $once=false) 56: { 57: if ($required) 58: { 59: require($this->baseDir.$filepath); 60: //or die("Failed to open required file ".$filepath); 61: } 62: else if ($once) 63: { 64: include_once($this->baseDir.$filepath); 65: } 66: else 67: { 68: include($this->baseDir.$filepath); 69: } 70: } 71: 72: /** 73: * Include a file and create a class instance, uses require to open file 74: * @param string $filepath Path to file 75: * @param string $classname Name of the class to create 76: * @param bool $passdesk Pass the FreeDESK object to constructor (optional, default true) 77: * @return object Newly created class 78: **/ 79: function IncludeInstance($filepath, $classname, $passdesk=true) 80: { 81: $this->IncludeFile($filepath,true); 82: $c = null; 83: if ($passdesk) 84: $c=new $classname($this->DESK); 85: else 86: $c=new $classname(); 87: return $c; 88: } 89: 90: /** 91: * Include a file and execute a static method in that class, uses require to open 92: * @param string $filepath Path to file 93: * @param string $classname Name of class 94: * @param string $methodname Name of method (optional, default Exec) 95: * @param bool $passdesk Pass the FreeDESK object to the method (optional, default true) 96: **/ 97: function IncludeExec($filepath, $classname, $methodname="Exec", $passdesk=true) 98: { 99: $this->IncludeFile($filepath,true); 100: if ($passdesk) 101: $classname::$methodname($this->DESK); 102: else 103: $classname::$methodname(); 104: } 105: 106: } 107: 108: 109: 110: 111: 112: 113: 114: ?> 115: