Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the Best Practices to share PHP scripts among different PHP applications?

Tags:

php

I have a folder of PHP scripts, they are mostly utility scripts. How to share those scripts among different PHP applications so that reuse and deployment are easy?

I would have to package my app into an installer, and let the user install it.

I could put the lib and hardcode the include path, but that means I haven to change the PHP code every time i deploy the web application to a new customer. This is not desirable.

Another route I consider is to copy the lib to other apps, but still, since the lib is constantly updating, that means that I need to constantly do the copying, and this will introduce a lot of problems. I want an automated way to do this.

Edit: Some of the applications are Symfony, some are not.

like image 960
Graviton Avatar asked Jul 02 '09 06:07

Graviton


2 Answers

You could create a PEAR package.

See Easy PEAR Package Creation for more information on how to do this.

This assumes that when you say anyone, you mean outside your immediate organisation.

Updated: You do not need to upload to a website to install the PEAR package. Just extract your archive into the pear folder to use in a PHP application.

Added: Why not create a new SVN repository for your library? Lets say you create a library called FOO. Inside the repostory you could use the folder heirachy of trunk\lib\foo. Your modules could then go into trunk\lib\foo\modules and have a file called trunk\lib\foo\libfoo.php. Now libfoo.php can include once or require once all the modules as required.

like image 74
Wayne Avatar answered Nov 25 '22 22:11

Wayne


PHP now supports Phar archives. There's full documentation on php.net. There's a complete tutorial on IBM website as well.

One neat thing you can do with Phar archives is package an entire application and distribute it that way.

http://php.net/phar

http://www.ibm.com/developerworks/opensource/library/os-php-5.3new4/index.html

like image 21
Christophe Eblé Avatar answered Nov 25 '22 22:11

Christophe Eblé