2012-09-04 18 views
12

Duplicar posible:
Is there a way to program 100% object-oriented in PHP?¿Hay un equivalente de PHP para `public static main (String [] args)` en Java?

Lo que estoy tratando de lograr sería algo como esto:

<?php 
     //index.php 
     class Site{ 
      public static function main(){ 
       // starts all the processing of the site 
      } 
     } 
?> 

Así que cuando alguien visita del sitio index.php el sitio se iniciar sin tener ningún código fuera de la clase.

Sí, sé que podría usar __autoload o incluso spl_autoload_register para manejar la carga automática de las clases, pero aún así sería necesario agregarlas fuera de la clase.

Tengo mis dudas de que esto sea posible, pero no sé por qué esto no sería posible.

+0

¿Por qué necesitarías un punto de entrada en php ??? – perilbrain

+0

@deceze sí que parece que podría cumplir los requisitos de mi pregunta, sin embargo, cada vez que busqué, nunca apareció en los resultados. Podría ser que estaba usando la información incorrecta en mi búsqueda. – JRSofty

+0

Sí hay ... public function __construct() {/ * Hacer algo en la construcción de objetos * /} – Matth3w

Respuesta

18

No.

punto de entrada de Java se define como el método main. El punto de entrada de PHP se define como la primera línea en el primer archivo que se ejecuta. Usted tiene que comenzar con el código "de procedimiento".

+0

Gracias por la respuesta directa. He estado pensando esto en mi cabeza durante los últimos dos días, mientras buscaba posibles respuestas directas a esta pregunta. Supongo que necesito más práctica con mis criterios de búsqueda SO ya que encontraste un duplicado. – JRSofty

1

Puede escribir su clase de Sitio de esa manera y hacer que la clase construya todo, pero aún necesitará un archivo de entrada para inicializar la clase. Puede "iniciar" su sitio con una línea en su archivo de índice. No parece ser un gran inhibidor de la flexibilidad.

Así, respuesta sería no :)

0

No existe tal concepto de la caja con php. Deberá tener algo en index.php o algo en un archivo .htaccess que redireccionará al usuario al archivo que desea, pero la clase siempre tendrá que ser instanciada por el código

-1

Puede lograr esto muy fácilmente bij utilizando un .htaccess en su sitio:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

Su Wil index.php luego hacer al procesamiento. Con 1 línea de código de procedimiento, puedes crear una clase y continuar desde allí.

<?php 
     //index.php 
     class Site{ 
      public static function main(){ 
       // starts all the processing of the site 
      } 
     } 

     Site::main() 
?> 

Ver mi tutorial/blog.

+0

Lo siento @JvdBerg eso no es lo que estaba buscando. Su ejemplo todavía muestra 'Site :: main()' que era lo que estaba tratando de evitar. Lo que ahora sé con certeza no es posible usando PHP. – JRSofty

Cuestiones relacionadas