80 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| Zotlabs/Module
 | |
| ==============
 | |
| 
 | |
| 
 | |
| This directory contains controller modules for handling web requests. The
 | |
| lowercase class name indicates the head of the URL path which this module
 | |
| handles. There are other methods of attaching (routing) URL paths to
 | |
| controllers, but this is the primary method used in this project.
 | |
| 
 | |
| Module controllers MUST reside in this directory and namespace to be
 | |
| autoloaded (unless other specific routing methods are employed). They
 | |
| typically use and extend the class definition in Zotlabs/Web/Controller 
 | |
| as a template. 
 | |
| 
 | |
| Template:
 | |
| 
 | |
| 	<?php
 | |
| 
 | |
| 	namespace Zotlabs\Web;
 | |
| 
 | |
| 
 | |
| 	class Controller {
 | |
| 
 | |
| 		function init() {}
 | |
| 		function post() {}
 | |
| 		function get() {}
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 
 | |
| Typical Module declaration for the '/foo' URL route:
 | |
| 
 | |
| 
 | |
| 	<?php
 | |
| 	namespace Zotlabs\Module;
 | |
| 
 | |
| 	class Foo extends \Zotlabs\Web\Controller {
 | |
| 
 | |
| 		function init() {
 | |
| 			// init() handler goes here
 | |
| 		}
 | |
| 
 | |
| 		function post() {
 | |
| 			// post handler goes here
 | |
| 		}
 | |
| 
 | |
| 		function get() {
 | |
| 			return 'Hello world.' . EOL;
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| 
 | |
| This model provides callbacks for public functions named init(), post(), 
 | |
| and get(). init() is always called. post() is called if $_POST variables
 | |
| are present, and get() is called if none of the prior functions terminated
 | |
| the handler. The get() method typically retuns a string which represents 
 | |
| the contents of the content region of the resulting page. Modules which emit 
 | |
| json, xml or other machine-readable formats typically emit their contents
 | |
| inside the init() function and call 'killme()' to terminate the Module. 
 | |
| 
 | |
| Modules are passed the URL path as argc,argv arguments. For a path such as
 | |
| 
 | |
| 	https://mysite.something/foo/bar/baz
 | |
| 
 | |
| The app will typically invoke the Module class 'Foo' and pass it 
 | |
| 
 | |
| 	$x = argc(); // $x = 3
 | |
| 
 | |
| 	$x = argv(0); // $x = 'foo'
 | |
| 	$x = argv(1); // $x = 'bar'
 | |
| 	$x = argv(2); // $x = 'baz'
 | |
| 
 | |
| These are handled in a similar fashion to their counterparts in the Unix shell
 | |
| or C/C++ languages. Do not confuse the argc(),argv() functions with the
 | |
| global variables $argc,$argv which are passed to command line programs. These 
 | |
| are handled separately by command line and Zotlabs/Daemon class functions. 
 | |
| 
 | |
| 
 | |
| 
 | |
|   |