1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
22:
23: use picon\WebPage;
24: use picon\Label;
25: use picon\ListView;
26: use picon\ArrayModel;
27: use picon\BasicModel;
28: use picon\MarkupContainer;
29:
30: 31: 32: 33: 34:
35: class ErrorPage extends WebPage
36: {
37: public function __construct(\Exception $ex)
38: {
39: $this->add(new Label('title', new BasicModel(get_class($ex))));
40: $this->add(new Label('message', new BasicModel($ex->getMessage())));
41:
42: $this->add(new ListView('stack', function(MarkupContainer $entry)
43: {
44: $object = $entry->getModel()->getModelObject();
45: $entry->add(new Label('class', new BasicModel(array_key_exists('class', $object)?$object['class']:'')));
46: $entry->add(new Label('function', new BasicModel(array_key_exists('function', $object)?$object['function']:'')));
47: $entry->add(new Label('file', new BasicModel(array_key_exists('file', $object)?$object['file']:'')));
48: $entry->add(new Label('line', new BasicModel(array_key_exists('line', $object)?$object['line']:'')));
49: }, new ArrayModel($ex->getTrace())));
50: }
51: }
52:
53: ?>
54: