He estado usando aplicaciones de mvc rails, merb, django y asp.net en el pasado. Lo que tienen en común (que es relevante para la pregunta) es que tienen un código que establece el marco. Esto generalmente significa la creación de objetos y el estado que se conserva hasta que el servidor web se recicla (como configurar el enrutamiento o verificar qué controladores están disponibles, etc.).Cómo persistir objetos entre solicitudes en PHP
Por lo que sé PHP es más como un script CGI que se compila en un bytecode cada vez que se ejecuta, y después de la solicitud se descarta. Por supuesto, puede tener sesiones para mantener la información entre las solicitudes del mismo usuario y, como veo, hay extensiones como APC, con las que puede persistir entre las solicitudes en el nivel del servidor.
Mi pregunta es: ¿cómo se puede crear una aplicación PHP que funcione como los rieles y tal? Me refiero a una aplicación que en las primeras solicitudes configura el marco, luego en la segunda y posteriores solicitudes usan los objetos que ya están configurados. ¿Hay alguna instalación de almacenamiento en caché en mod_php? (por ejemplo, que almacena el código de bytes compilado de las aplicaciones de php ejecutadas) ¿O está usando APC o algunas extensiones similares la única forma de resolver este problema? ¿Como lo harias?
Gracias.
EDITAR: Pregunta alternativa: si creo una aplicación PHP grande que tiene un tiempo de configuración muy grande, pero menor tiempo de ejecución (como en los marcos mencionados anteriormente) entonces ¿cómo debo "caché" las cosas que ya están configuradas up (esto podría significar muchas cosas, excepto tal vez las conexiones a la base de datos, porque para eso ya tienes conexiones persistentes en PHP).
Para justificar un gran tiempo de configuración: ¿qué ocurre si uso la reflexión de PHP para verificar qué objetos están disponibles y establecer el tiempo de ejecución de acuerdo con eso? Hacer muchas reflexiones suele ser lento, pero hay que hacerlo solo una vez (y volver a evaluar solo si se modifica el código fuente).
EDIT2: Parece que es APC entonces. El hecho de que almacena en caché bytecode automáticamente es bueno saberlo.
La precompilación de los scripts es solo una parte del trabajo. Pero si lo veo corectly también tengo que hacer esta parte usando PHP, ¿verdad? Quiero decir, por ejemplo, mod_php no hará esto por mí. – SztupY
Code-caching es transparente. Simplemente instale APC y guardará en caché su código de bytes automáticamente a menos que lo desactive. Los datos de tu aplicación como $ table en mi ejemplo no se almacenarán en caché automáticamente. Tienes que hacerlo tú mismo. –
¿Por qué demonios estás suprimiendo 'apc_fetch'? ** 'afc_fetch' devuelve la variable almacenada o matriz de variables en caso de éxito; FALSO en caso de falla **. –