Tuve una entrevista que pedía una muestra de código para demostrar que conocía MVC.
Escriba una aplicación web básica, siguiendo el patrón de diseño Modelo-Vista-Controlador / Modular. Las siguientes URL deberían ser funcionales:
http://www.example.com/index.php?page=showTime
- Cómo comenzar a hacer una aplicación moderna
- ¿Cómo podemos clasificar una plataforma de servidor de aplicaciones para mantener nuestro entorno de producción? ¿En qué debería basarse?
- ¿Cuál es la diferencia entre una plantilla web y un marco web?
- ¿Se pueden enviar notificaciones push a las aplicaciones web?
- ¿Qué es una buena aplicación de administración de tareas donde puedo crear una tarea desde un correo electrónico?
Muestra la hora actual del sistema.
http://www.example.com/index.php?page=showDate
Muestra la fecha actual del sistema.
http://www.example.com/index.php?page=showVersion
Muestra la versión actual de PHP / Java.
Cada página debe estar representada por una clase individual.
Tal vez estaban pidiendo un ejemplo de uso de un MVC, pero decidí escribir un marco MVC mínimo desde cero.
Clases de modelo:
<? php
modelo de interfaz
{
función pública __toString ();
}
clase timeModel implementa Modelo
{
función pública __toString () {
fecha de regreso (‘H: i: s’);
}
}
clase dateModel implementa Modelo
{
función pública __toString () {
fecha de regreso (‘Ymd’);
}
}
clase versionModel implementa Modelo
{
función pública __toString () {
volver phpversion ();
}
}
Ver clases:
<? php
define (VIEWS_HOME, ‘/ home / bill / Sites / karwin / mvc / views’);
Vista de clase abstracta
{
protegido $ viewScript;
protegido $ model = array ();
función pública __construct ()
{
$ this-> viewScript = get_class ($ this);
}
función pública setViewScript ($ script) {
$ this-> viewScript = $ script;
}
función pública addModel ($ key, Model $ model)
{
$ this-> model [$ key] = $ modelo;
}
función pública __set ($ clave, modelo $ modelo)
{
$ this-> addModel ($ clave, $ modelo);
}
función pública __get ($ clave)
{
devuelve $ this-> model [$ key];
}
función pública render ()
{
set_include_path (VIEWS_HOME. PATH_SEPARATOR. get_include_path ());
incluir $ this-> viewScript. ‘. html’;
}
}
clase showTime extiende Vista
{
}
clase showDate extiende la vista
{
}
clase showVersion extiende Vista
{
}
Controlador index.php:
<? php
// asume que el autocargador cargará clases en la primera referencia
$ pageName = $ _GET [‘página’];
$ view = new $ pageName ();
$ view-> time = new timeModel ();
$ view-> date = new dateModel ();
$ view-> version = new versionModel ();
$ vista-> render ();
Ver guiones; cópielos a VIEWS_HOME:
DATE = date?>
TIME = time?>
PHP VERSION = version?>
Todo el código de Quora se puede usar libremente según sus Términos de servicio. Pero agradecería si me acredita si usa o comparte este código.