//この記事は編集中です。

まずはさっそくページを作ってみます。
当然ですが、まずはトップページを作ってみます。

遠回りですが、構造から追ってきます。
まずindex.phpを見ます。


*  Get Cake's root directory
*/ define('APP_DIR', 'app'); define('DS', DIRECTORY_SEPARATOR); define('ROOT', dirname(__FILE__)); define('WEBROOT_DIR', 'webroot'); define('WWW_ROOT', ROOT . DS . APP_DIR . DS . WEBROOT_DIR . DS);
ここで、定数として設定しています

続けて、
	if (!defined('CAKE_CORE_INCLUDE_PATH')) {
		define('CAKE_CORE_INCLUDE_PATH', ROOT);
	}

/**
 * Set the include path or define app and core path
 */
if (function_exists('ini_set')) {
	ini_set('include_path',
	ini_get('include_path') . PATH_SEPARATOR 
   . CAKE_CORE_INCLUDE_PATH
	. PATH_SEPARATOR . ROOT . DS . APP_DIR . DS
		);
		define('APP_PATH', null);
		define('CORE_PATH', null);
	} else {
		define('APP_PATH', ROOT . DS . APP_DIR . DS);
		define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS);
	}
	require APP_DIR . DS . WEBROOT_DIR . DS . 'index.php';
    
さらに、.htaccess内

   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]

でwebrootへindexを移動させています。
次に、app/webrootのindex.phpを見てみます。
	if (!defined('DS')) {
		define('DS', DIRECTORY_SEPARATOR);
	}
//もしDSの区切り定数が無かった宣言
	if (!defined('ROOT')) {
		define('ROOT', dirname(dirname(dirname(__FILE__))));
	}
//もしAPP_DIRが決まってなければ宣言
	if (!defined('APP_DIR')) {
		define('APP_DIR', basename(dirname(dirname(__FILE__))));
	}
	if (!defined('CAKE_CORE_INCLUDE_PATH')) {
		define('CAKE_CORE_INCLUDE_PATH', ROOT);
	}
//CAKE_CORE_INCLUDE_PATHが決まってなければ宣言

//以下、自己責任で編集との事

	if (!defined('WEBROOT_DIR')) {
		define('WEBROOT_DIR', basename(dirname(__FILE__)));
	}
	
	if (!defined('WWW_ROOT')) {
		define('WWW_ROOT', dirname(__FILE__) . DS);
	}
	if (!defined('CORE_PATH')) {
		if (function_exists('ini_set') 
			&& ini_set('include_path', 
				  CAKE_CORE_INCLUDE_PATH 
				  . PATH_SEPARATOR . ROOT 
				  . DS 
				  . APP_DIR 
				  . DS 
				  . PATH_SEPARATOR 
				  . ini_get('include_path'))) {
			define('APP_PATH', null);
			define('CORE_PATH', null);
		} else {
			define('APP_PATH', ROOT . DS . APP_DIR . DS);
			define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS);
		}
	}
    
//それぞれ宣言でfunction_exists関数でini_setも宣言
	if (!include(CORE_PATH . 'cake' . DS . 'bootstrap.php')) {
		trigger_error(
"CakePHP core could not be found. Check the value of CAKE_CORE_INCLUDE_PATH
in APP/webroot/index.php.
It should point to the directory containing your "
. DS . "cake core directory and your "
. DS . "vendors root directory.", E_USER_ERROR); } if (isset($_GET['url']) && $_GET['url'] === 'favicon.ico') { return; } else { $Dispatcher = new Dispatcher(); $Dispatcher->dispatch(); }

このini_setでエラーを制御そして "CakePHP core could not be found. ~を出力ですね。
要は定数としてパスが設定してなければ、エラーメッセージを出すという形です。


で、実際のindex.phpgはapp/webrootにあります。
ルート絡みのページはこちらに配置します。