2010-12-09 21 views
17

Estoy tratando de entender las opciones y la terminología relacionada con las bibliotecas de PHP "Instalación" en un sistema (Linux/OSX)librería PHP entendimiento instalación

Éstos son algunos puntos específicos que estoy tratando de cubrir:

  1. ¿Qué significa "instalar" en relación con las bibliotecas PHP?
  2. ¿Cuál es la diferencia entre bibliotecas y extensiones?
  3. ¿Cómo encaja php.ini?
  4. ¿Cómo encaja PEAR?
  5. ¿Cómo se importan/incluyen las bibliotecas?
  6. Si creo mi propia biblioteca, ¿cuál es la mejor manera de empaquetarla y distribuirla?

de Acción de Gracias y lo siento por el multi-parte ...

+1

Algunos de estos se encuentran en la documentación de php: [php.ini] (http://www.php.net/manual/en/configuration.file.php), [PECL/PEAR] (http: // www.php.net/manual/en/install.pecl.intro.php). – eykanal

Respuesta

4

Todo directamente relacionado con PHP:

  1. Por lo general, sólo debes copiar y asegúrese de que algo, que quiere usarla, sabe dónde es.
  2. Una extensión se escribe generalmente en C y se carga por el intérprete, mientras que una biblioteca generalmente significa una biblioteca PHP nativa.
  3. No sé, lo que quieres saber aquí. El ini carga extensiones y configura algunas configuraciones. No está directamente asociado con las instalaciones, .... Puede configurar su include-path (o algo así) aquí.
  4. Puede instalar bibliotecas con él;) Tampoco lo sabe, lo que quiere saber.
  5. generalmente require(_once) o include(_once). Para las clases, puede configurar un autocargador. Consulte el manual de PHP.
  6. paquete/Archivar (zip, gz, tarball, ..) y hacer un enlace de descarga? Además: No sé, lo que quieres.

Si desea escribir bibliotecas de PHP y desea una forma sencilla de empaquetar y distribuir, eche un vistazo a PEAR.

+0

gracias, pero ¿podría arrojar luz sobre por qué PEAR sería más simple que solo "paquete ... y hacer un enlace de descarga"? – Yarin

+1

La instalación con pera consta de dos líneas: 'pear channel-discover mychannel.example.com' y' pear install mychannel.example.com/MyPackage'. Si no tiene un servidor de canales (google para pearfarm;)), entonces también puede proporcionar un paquete descargable. La instalación es algo así como 'pear install MyPackage-x.y.z.tgz' (x.y.z depende de la versión del archivo del paquete). Para crear paquetes, debe escribir un 'package.xml' (google para" pear package.xml ";)), pero cuando existe, es solo un breve' paquete de pera' para crear un nuevo paquete, que luego puede cargar a su servidor o servidor de canales. – KingCrunch

13

un par de puntos ...

PHP tiene ninguna infraestructura nativa "de importación", como Python, Java o .NET. Hay varias formas en que las bibliotecas se pueden usar en PHP.

  1. compilarlos en el binario de PHP. Esta es la forma más avanzada, y generalmente no es deseable a menos que tenga necesidades muy especiales.

  2. Instalarlos como módulos PHP en el servidor e incluirlos en PHP.ini. Desde el punto de vista del programador PHP, estas extensiones son parte de PHP, siempre disponible. Simplemente es más fácil agregarlos y eliminarlos sin tener que reconstruir PHP.

  3. Instale el código PHP en el servidor en alguna parte, e inclúyelo() en su script PHP.

  4. Guarde una copia de una biblioteca en su proyecto e inclúyala en su script PHP.

-
En un nivel básico, el código es o bien parte del intérprete (estática o dinámica), o es evidente código PHP de edad que es include() ed en su proyecto.

Para su propósito, solo puedo sugerirle que se quede con una distribución PHP estándar de la industria (elija un buen sistema operativo Linux, y use su PHP). Entonces, casi todas las bibliotecas que necesitará en el nivel de intérprete están disponibles como paquetes complementarios, y la complejidad de eso depende de quienes lo hacen todos los días.

En RedHat/CentOS, que puede encontrar:

yum install php php-memcached php-gd php-pecl

-
En cuanto a todos los otros tipos de bibliotecas que es posible que desee utilizar, lo más probable es mejor adoptar un buen marco de PHP que se encarga de todo eso por ti.

Algunos ejemplos son:

  1. Zend Framework
  2. CakePHP
  3. CodeIgniter
  4. http://www.phpframeworks.com/
  5. Etc ...

(no en cualquier orden, sólo los que me vino a la mente)

Siempre que haya tomado el enfoque estándar de usar RPM o similar para administrar lo compilado en aspectos de PHP y extensiones, entonces un buen marco sólido se encargará de la inclusión de todo el código de biblioteca PHP adicional que necesite.

Lo que el resultado final es que se enfoca en entregar un producto, y no en toda la infraestructura que de otra manera tendría que aprender e inventar.

-
php.ini se analiza y se ejecuta cuando arranca PHP (cada vez por línea de comandos, una vez al inicio del servidor en Apache). Define una gran cantidad de configuraciones, incluye una gran cantidad de módulos, configura esos módulos, etc ...

En realidad, puede anular algunas configuraciones en php.ini con la función ini_set() en PHP. Sin embargo, esto solo es efectivo para algunas configuraciones. Otros deben configurarse antes de que comience su script.

Al ejecutar en apache, puede agregar líneas a las directivas .htaccess y <VirtualHost> que anulan por completo PHP.ini para ese directorio/host virtual.

(por favor, corregir mi sintaxis y eliminar esta nota si está mal)

<VirtualHost *> 
    ServerName www.example.com  
    DocumentRoot /home/joe/site/docroot 
    php_value include_path "/home/joe/site/php-code" 
</VirtualHost> 

-
En respuesta a la pregunta # 6 sobre su propia biblioteca y la mejor manera de empaquetar, te sugiero primero evalúa la necesidad de la biblioteca. Y si realmente está trabajando en algo, descubra la forma más común de hacerlo. Si es una biblioteca simple, entonces un archivo .php con un buen sitio web sería suficiente.

-
Tal vez un poco divagar, pero espero que esto te indique la dirección correcta.

+0

Muy útil- gracias – Yarin