Citarla pregunta es, de que manera podria lograr "separar" todo el codigo en diferentes archivos php, asi por ejemplo, en el caso de que el parametro accion sea "perfil", se ejecute el codigo del archivo "perfil.php", pero si el usuario ingresa directamente a perfil.php le de error 404?
Defines una variable de entorno en tu index.php con la ruta del actual archivo.
Código (php) [Seleccionar]
define('FOROPATH', realpath(dirname(__FILE__)).'/');
Defines una lista de acciones que el visitante puede realizar en la url y el archivo asociado a ellas o incluso la clase si es que lo haces en POO.
Código (php) [Seleccionar]
$actions = array(
'usuario' => 'userClass.php',
'perfil' => 'profileClass.php',
'ver' => 'topicClass.php',
'borrar' => 'moderationClass.php'
);
Defines un main GET en el index.php o en el router para estas acciones y compruebas si pertenece a alguno.
Código (php) [Seleccionar]
if(isset($_GET['accion']) && isset($actions[$_GET['accion']])){
include_once FOROPATH.'archivos/'.$actions[$_GET['accion']];
// codigo que sigue.
} else {
// que hacer si la variable no esta definida o no tiene una accion valida.
}
y en los archivos simplemente compruebas si esta definida tu variable:
Código (php) [Seleccionar]
<?php
if(!defined('FOROPATH')){ die(header('HTTP/1.0 403 Forbidden')); }
echo 'Bienvenido usuario...';
Esto seria un sistema muy básico y varios CMS's hacen algo parecido a esto (Wordpress y SMF entre ellos).
Lo que te recomendaría sin embargo es que uses un framework. No solo porque ya incluyen la mitad de lo que tienes que hacer si no porque realmente la mayoría te hace utilizar el modelo MVC que es lo que te ayuda a tener controlada y definida toda la estructura.
Yo por ejemplo actualmente estoy en SLIM y no me arrepiento de nada. Es un framework básico que soporta módulos de Laravel y lo más importante... liviano.
Ademas, en sistemas CMS tipo un foro, te interesa mucho la parte de los template (diseños diferentes..) como los temas. Por eso viene bien un framework que soporte templates.
Saludos