CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (GitHub)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • Slack
    • Paid Support
CakePHP

C CakePHP 1.3 API

  • Overview
  • Tree
  • Deprecated
  • Version:
    • 1.3
      • 4.2
      • 4.1
      • 4.0
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Classes

  • AclBase
  • AclBehavior
  • AclComponent
  • AclNode
  • AclShell
  • Aco
  • AcoAction
  • AjaxHelper
  • ApcEngine
  • ApiShell
  • App
  • AppController
  • AppHelper
  • AppModel
  • Aro
  • AuthComponent
  • BakeShell
  • BakeTask
  • BehaviorCollection
  • Cache
  • CacheEngine
  • CacheHelper
  • CakeErrorController
  • CakeLog
  • CakeRoute
  • CakeSchema
  • CakeSession
  • CakeSocket
  • ClassRegistry
  • Component
  • Configure
  • ConnectionManager
  • ConsoleShell
  • ContainableBehavior
  • Controller
  • ControllerTask
  • CookieComponent
  • DataSource
  • DbAcl
  • DbConfigTask
  • DboMssql
  • DboMysql
  • DboMysqlBase
  • DboMysqli
  • DboOracle
  • DboPostgres
  • DboSource
  • DboSqlite
  • Debugger
  • EmailComponent
  • ErrorHandler
  • ExtractTask
  • File
  • FileEngine
  • FileLog
  • FixtureTask
  • Folder
  • FormHelper
  • Helper
  • HtmlHelper
  • HttpSocket
  • I18n
  • I18nModel
  • I18nShell
  • Inflector
  • IniAcl
  • JavascriptHelper
  • JqueryEngineHelper
  • JsBaseEngineHelper
  • JsHelper
  • L10n
  • MagicDb
  • MagicFileResource
  • MediaView
  • MemcacheEngine
  • Model
  • ModelBehavior
  • ModelTask
  • MootoolsEngineHelper
  • Multibyte
  • NumberHelper
  • Object
  • Overloadable
  • Overloadable2
  • PagesController
  • PaginatorHelper
  • Permission
  • PluginShortRoute
  • PluginTask
  • ProjectTask
  • PrototypeEngineHelper
  • RequestHandlerComponent
  • Router
  • RssHelper
  • Sanitize
  • Scaffold
  • ScaffoldView
  • SchemaShell
  • Security
  • SecurityComponent
  • SessionComponent
  • SessionHelper
  • Set
  • Shell
  • String
  • TemplateTask
  • TestSuiteShell
  • TestTask
  • TextHelper
  • ThemeView
  • TimeHelper
  • TranslateBehavior
  • TreeBehavior
  • Validation
  • View
  • ViewTask
  • XcacheEngine
  • Xml
  • XmlElement
  • XmlHelper
  • XmlManager
  • XmlNode
  • XmlTextNode

Functions

  • mb_encode_mimeheader
  • mb_stripos
  • mb_stristr
  • mb_strlen
  • mb_strpos
  • mb_strrchr
  • mb_strrichr
  • mb_strripos
  • mb_strrpos
  • mb_strstr
  • mb_strtolower
  • mb_strtoupper
  • mb_substr
  • mb_substr_count
  1: <?php
  2: /**
  3:  * Error handler
  4:  *
  5:  * Provides Error Capturing for Framework errors.
  6:  *
  7:  * PHP versions 4 and 5
  8:  *
  9:  * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 10:  * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 11:  *
 12:  * Licensed under The MIT License
 13:  * Redistributions of files must retain the above copyright notice.
 14:  *
 15:  * @copyright     Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 16:  * @link          http://cakephp.org CakePHP(tm) Project
 17:  * @package       cake
 18:  * @subpackage    cake.cake.libs
 19:  * @since         CakePHP(tm) v 0.10.5.1732
 20:  * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 21:  */
 22: App::import('Controller', 'App');
 23: 
 24: /**
 25:  * Error Handling Controller
 26:  *
 27:  * Controller used by ErrorHandler to render error views.
 28:  *
 29:  * @package       cake
 30:  * @subpackage    cake.cake.libs
 31:  */
 32: class CakeErrorController extends AppController {
 33:     var $name = 'CakeError';
 34: 
 35: /**
 36:  * Uses Property
 37:  *
 38:  * @var array
 39:  */
 40:     var $uses = array();
 41: 
 42: /**
 43:  * __construct
 44:  *
 45:  * @access public
 46:  * @return void
 47:  */
 48:     function __construct() {
 49:         parent::__construct();
 50:         $this->_set(Router::getPaths());
 51:         $this->params = Router::getParams();
 52:         $this->constructClasses();
 53:         $this->Component->initialize($this);
 54:         $this->_set(array('cacheAction' => false, 'viewPath' => 'errors'));
 55:     }
 56: }
 57: 
 58: /**
 59:  * Error Handler.
 60:  *
 61:  * Captures and handles all cakeError() calls.
 62:  * Displays helpful framework errors when debug > 1.
 63:  * When debug < 1 cakeError() will render 404 or 500 errors.
 64:  *
 65:  * @package       cake
 66:  * @subpackage    cake.cake.libs
 67:  */
 68: class ErrorHandler extends Object {
 69: 
 70: /**
 71:  * Controller instance.
 72:  *
 73:  * @var Controller
 74:  * @access public
 75:  */
 76:     var $controller = null;
 77: 
 78: /**
 79:  * Class constructor.
 80:  *
 81:  * @param string $method Method producing the error
 82:  * @param array $messages Error messages
 83:  */
 84:     function __construct($method, $messages) {
 85:         App::import('Core', 'Sanitize');
 86:         static $__previousError = null;
 87: 
 88:         if ($__previousError != array($method, $messages)) {
 89:             $__previousError = array($method, $messages);
 90:             $this->controller =& new CakeErrorController();
 91:         } else {
 92:             $this->controller =& new Controller();
 93:             $this->controller->viewPath = 'errors';
 94:         }
 95:         $options = array('escape' => false);
 96:         $messages = Sanitize::clean($messages, $options);
 97: 
 98:         if (!isset($messages[0])) {
 99:             $messages = array($messages);
100:         }
101: 
102:         if (method_exists($this->controller, 'apperror')) {
103:             return $this->controller->appError($method, $messages);
104:         }
105: 
106:         if (!in_array(strtolower($method), array_map('strtolower', get_class_methods($this)))) {
107:             $method = 'error';
108:         }
109: 
110:         if ($method !== 'error') {
111:             if (Configure::read('debug') == 0) {
112:                 $parentClass = get_parent_class($this);
113:                 if (strtolower($parentClass) != 'errorhandler') {
114:                     $method = 'error404';
115:                 }
116:                 $parentMethods = array_map('strtolower', get_class_methods($parentClass));
117:                 if (in_array(strtolower($method), $parentMethods)) {
118:                     $method = 'error404';
119:                 }
120:                 if (isset($messages[0]['code']) && $messages[0]['code'] == 500) {
121:                     $method = 'error500';
122:                 }
123:             }
124:         }
125:         $this->dispatchMethod($method, $messages);
126:         $this->_stop();
127:     }
128: 
129: /**
130:  * Displays an error page (e.g. 404 Not found).
131:  *
132:  * @param array $params Parameters for controller
133:  * @access public
134:  */
135:     function error($params) {
136:         extract($params, EXTR_OVERWRITE);
137:         $this->controller->set(array(
138:             'code' => $code,
139:             'name' => $name,
140:             'message' => $message,
141:             'title' => $code . ' ' . $name
142:         ));
143:         $this->_outputMessage('error404');
144:     }
145: 
146: /**
147:  * Convenience method to display a 404 page.
148:  *
149:  * @param array $params Parameters for controller
150:  * @access public
151:  */
152:     function error404($params) {
153:         extract($params, EXTR_OVERWRITE);
154: 
155:         if (!isset($url)) {
156:             $url = $this->controller->here;
157:         }
158:         $url = Router::normalize($url);
159:         $this->controller->header("HTTP/1.0 404 Not Found");
160:         $this->controller->set(array(
161:             'code' => '404',
162:             'name' => __('Not Found', true),
163:             'message' => h($url),
164:             'base' => $this->controller->base
165:         ));
166:         $this->_outputMessage('error404');
167:     }
168: 
169: /**
170:  * Convenience method to display a 500 page.
171:  *
172:  * @param array $params Parameters for controller
173:  * @access public
174:  */
175:     function error500($params) {
176:         extract($params, EXTR_OVERWRITE);
177: 
178:         if (!isset($url)) {
179:             $url = $this->controller->here;
180:         }
181:         $url = Router::normalize($url);
182:         $this->controller->header("HTTP/1.0 500 Internal Server Error");
183:         $this->controller->set(array(
184:             'code' => '500',
185:             'name' => __('An Internal Error Has Occurred', true),
186:             'message' => h($url),
187:             'base' => $this->controller->base
188:         ));
189:         $this->_outputMessage('error500');
190:     }
191: /**
192:  * Renders the Missing Controller web page.
193:  *
194:  * @param array $params Parameters for controller
195:  * @access public
196:  */
197:     function missingController($params) {
198:         extract($params, EXTR_OVERWRITE);
199: 
200:         $controllerName = str_replace('Controller', '', $className);
201:         $this->controller->set(array(
202:             'controller' => $className,
203:             'controllerName' => $controllerName,
204:             'title' => __('Missing Controller', true)
205:         ));
206:         $this->_outputMessage('missingController');
207:     }
208: 
209: /**
210:  * Renders the Missing Action web page.
211:  *
212:  * @param array $params Parameters for controller
213:  * @access public
214:  */
215:     function missingAction($params) {
216:         extract($params, EXTR_OVERWRITE);
217: 
218:         $controllerName = str_replace('Controller', '', $className);
219:         $this->controller->set(array(
220:             'controller' => $className,
221:             'controllerName' => $controllerName,
222:             'action' => $action,
223:             'title' => __('Missing Method in Controller', true)
224:         ));
225:         $this->_outputMessage('missingAction');
226:     }
227: 
228: /**
229:  * Renders the Private Action web page.
230:  *
231:  * @param array $params Parameters for controller
232:  * @access public
233:  */
234:     function privateAction($params) {
235:         extract($params, EXTR_OVERWRITE);
236: 
237:         $this->controller->set(array(
238:             'controller' => $className,
239:             'action' => $action,
240:             'title' => __('Trying to access private method in class', true)
241:         ));
242:         $this->_outputMessage('privateAction');
243:     }
244: 
245: /**
246:  * Renders the Missing Table web page.
247:  *
248:  * @param array $params Parameters for controller
249:  * @access public
250:  */
251:     function missingTable($params) {
252:         extract($params, EXTR_OVERWRITE);
253: 
254:         $this->controller->header("HTTP/1.0 500 Internal Server Error");
255:         $this->controller->set(array(
256:             'code' => '500',
257:             'model' => $className,
258:             'table' => $table,
259:             'title' => __('Missing Database Table', true)
260:         ));
261:         $this->_outputMessage('missingTable');
262:     }
263: 
264: /**
265:  * Renders the Missing Database web page.
266:  *
267:  * @param array $params Parameters for controller
268:  * @access public
269:  */
270:     function missingDatabase($params = array()) {
271:         $this->controller->header("HTTP/1.0 500 Internal Server Error");
272:         $this->controller->set(array(
273:             'code' => '500',
274:             'title' => __('Scaffold Missing Database Connection', true)
275:         ));
276:         $this->_outputMessage('missingScaffolddb');
277:     }
278: 
279: /**
280:  * Renders the Missing View web page.
281:  *
282:  * @param array $params Parameters for controller
283:  * @access public
284:  */
285:     function missingView($params) {
286:         extract($params, EXTR_OVERWRITE);
287: 
288:         $this->controller->set(array(
289:             'controller' => $className,
290:             'action' => $action,
291:             'file' => $file,
292:             'title' => __('Missing View', true)
293:         ));
294:         $this->_outputMessage('missingView');
295:     }
296: 
297: /**
298:  * Renders the Missing Layout web page.
299:  *
300:  * @param array $params Parameters for controller
301:  * @access public
302:  */
303:     function missingLayout($params) {
304:         extract($params, EXTR_OVERWRITE);
305: 
306:         $this->controller->layout = 'default';
307:         $this->controller->set(array(
308:             'file' => $file,
309:             'title' => __('Missing Layout', true)
310:         ));
311:         $this->_outputMessage('missingLayout');
312:     }
313: 
314: /**
315:  * Renders the Database Connection web page.
316:  *
317:  * @param array $params Parameters for controller
318:  * @access public
319:  */
320:     function missingConnection($params) {
321:         extract($params, EXTR_OVERWRITE);
322: 
323:         $this->controller->header("HTTP/1.0 500 Internal Server Error");
324:         $this->controller->set(array(
325:             'code' => '500',
326:             'model' => $className,
327:             'title' => __('Missing Database Connection', true)
328:         ));
329:         $this->_outputMessage('missingConnection');
330:     }
331: 
332: /**
333:  * Renders the Missing Helper file web page.
334:  *
335:  * @param array $params Parameters for controller
336:  * @access public
337:  */
338:     function missingHelperFile($params) {
339:         extract($params, EXTR_OVERWRITE);
340: 
341:         $this->controller->set(array(
342:             'helperClass' => Inflector::camelize($helper) . "Helper",
343:             'file' => $file,
344:             'title' => __('Missing Helper File', true)
345:         ));
346:         $this->_outputMessage('missingHelperFile');
347:     }
348: 
349: /**
350:  * Renders the Missing Helper class web page.
351:  *
352:  * @param array $params Parameters for controller
353:  * @access public
354:  */
355:     function missingHelperClass($params) {
356:         extract($params, EXTR_OVERWRITE);
357: 
358:         $this->controller->set(array(
359:             'helperClass' => Inflector::camelize($helper) . "Helper",
360:             'file' => $file,
361:             'title' => __('Missing Helper Class', true)
362:         ));
363:         $this->_outputMessage('missingHelperClass');
364:     }
365: 
366: /**
367:  * Renders the Missing Behavior file web page.
368:  *
369:  * @param array $params Parameters for controller
370:  * @access public
371:  */
372:     function missingBehaviorFile($params) {
373:         extract($params, EXTR_OVERWRITE);
374: 
375:         $this->controller->set(array(
376:             'behaviorClass' => Inflector::camelize($behavior) . "Behavior",
377:             'file' => $file,
378:             'title' => __('Missing Behavior File', true)
379:         ));
380:         $this->_outputMessage('missingBehaviorFile');
381:     }
382: 
383: /**
384:  * Renders the Missing Behavior class web page.
385:  *
386:  * @param array $params Parameters for controller
387:  * @access public
388:  */
389:     function missingBehaviorClass($params) {
390:         extract($params, EXTR_OVERWRITE);
391: 
392:         $this->controller->set(array(
393:             'behaviorClass' => Inflector::camelize($behavior) . "Behavior",
394:             'file' => $file,
395:             'title' => __('Missing Behavior Class', true)
396:         ));
397:         $this->_outputMessage('missingBehaviorClass');
398:     }
399: 
400: /**
401:  * Renders the Missing Component file web page.
402:  *
403:  * @param array $params Parameters for controller
404:  * @access public
405:  */
406:     function missingComponentFile($params) {
407:         extract($params, EXTR_OVERWRITE);
408: 
409:         $this->controller->set(array(
410:             'controller' => $className,
411:             'component' => $component,
412:             'file' => $file,
413:             'title' => __('Missing Component File', true)
414:         ));
415:         $this->_outputMessage('missingComponentFile');
416:     }
417: 
418: /**
419:  * Renders the Missing Component class web page.
420:  *
421:  * @param array $params Parameters for controller
422:  * @access public
423:  */
424:     function missingComponentClass($params) {
425:         extract($params, EXTR_OVERWRITE);
426: 
427:         $this->controller->set(array(
428:             'controller' => $className,
429:             'component' => $component,
430:             'file' => $file,
431:             'title' => __('Missing Component Class', true)
432:         ));
433:         $this->_outputMessage('missingComponentClass');
434:     }
435: 
436: /**
437:  * Renders the Missing Model class web page.
438:  *
439:  * @param unknown_type $params Parameters for controller
440:  * @access public
441:  */
442:     function missingModel($params) {
443:         extract($params, EXTR_OVERWRITE);
444: 
445:         $this->controller->set(array(
446:             'model' => $className,
447:             'title' => __('Missing Model', true)
448:         ));
449:         $this->_outputMessage('missingModel');
450:     }
451: 
452: /**
453:  * Output message
454:  *
455:  * @access protected
456:  */
457:     function _outputMessage($template) {
458:         $this->controller->render($template);
459:         $this->controller->afterFilter();
460:         echo $this->controller->output;
461:     }
462: }
463: 
OpenHub
Rackspace
Rackspace
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (GitHub)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • Slack
  • Paid Support

Generated using CakePHP API Docs