<?php
require_once 'abstract_weaver.class.php';

class CakePHPWeaver extends AbstractWeaver {
	public function detectFramework($sourcetree_rootpath) {
		
	}

	public function parseFrameworkConfig($fw_props) {
		
	}

	public function parseFrameworkCode($fw_props, $fw_conf, $cache_path) {
		
	}

	public function parseApplicationCode($fw_props, $fw_conf, $fw_extra, $cache_path) {
		
	}

	public function computePageList($fw_props, $fw_conf, $fw_extra, $app_extra) {
		return array(
			'page1' => array(),
			'page2' => array(),
		);
	}

	public function outputMappingFile($app_pages,  $result_path) {
		
	}

	public function makePageFullAST($page, $page_props, $fw_props, $fw_conf, $fw_extra, $app_extra, $cache_path) {
		
	}

	public function analysePageAST($page_full_ast, $page, $page_props, $fw_props, $fw_conf, $fw_extra, $app_extra, $cache_path) {
		
	}

	public function throwDeadCode(&$page_annotated_ast) {
		
	}

	public function weaveCode($page_annotated_ast) {
		return array(new PHPParser_Node_Stmt_Echo(array(new PHPParser_Node_Scalar_String("Hello World\n"))));
	}

}
?>