A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					62 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					62 lines
				
				1.1 KiB
			| 
								 
											7 years ago
										 
									 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								final class Front {
							 | 
						||
| 
								 | 
							
									protected $registry;
							 | 
						||
| 
								 | 
							
									protected $pre_action = array();
							 | 
						||
| 
								 | 
							
									protected $error;
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									public function __construct($registry) {
							 | 
						||
| 
								 | 
							
										$this->registry = $registry;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									public function addPreAction($pre_action) {
							 | 
						||
| 
								 | 
							
										$this->pre_action[] = $pre_action;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								  	public function dispatch($action, $error) {
							 | 
						||
| 
								 | 
							
										$this->error = $error;
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
										foreach ($this->pre_action as $pre_action) {
							 | 
						||
| 
								 | 
							
											$result = $this->execute($pre_action);
							 | 
						||
| 
								 | 
							
													
							 | 
						||
| 
								 | 
							
											if ($result) {
							 | 
						||
| 
								 | 
							
												$action = $result;
							 | 
						||
| 
								 | 
							
												
							 | 
						||
| 
								 | 
							
												break;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
										while ($action) {
							 | 
						||
| 
								 | 
							
											$action = $this->execute($action);
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								  	}
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
									private function execute($action) {
							 | 
						||
| 
								 | 
							
										$file = $action->getFile();
							 | 
						||
| 
								 | 
							
										$class = $action->getClass();
							 | 
						||
| 
								 | 
							
										$method = $action->getMethod();
							 | 
						||
| 
								 | 
							
										$args = $action->getArgs();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										$action = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										if (file_exists($file)) {
							 | 
						||
| 
								 | 
							
											require_once($file);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											$controller = new $class($this->registry);
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
											if (is_callable(array($controller, $method))) {
							 | 
						||
| 
								 | 
							
												$action = call_user_func_array(array($controller, $method), $args);
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												$action = $this->error;
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
												$this->error = '';
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										} else {
							 | 
						||
| 
								 | 
							
											$action = $this->error;
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
											$this->error = '';
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										return $action;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								?>
							 |