PHP Pear Package Depndencies Issue - php

I'm having some trouble with my hosting provider -- put simple they won't enable a dynamic library -- so I turn to PEAR for the PHP library of BBCode. Problem now is it's so loosely coupled to other PEAR classes that's almost impossible for me to even know where to begin. So my question is, is there a particular method in PEAR to automatically zip a package and its dependencies out so that the class can be used fully?
Thanks
Mike

The obvious way would be to just upload your local PEAR folder to the remote system and make sure its on the include path. However, you can also install and manage a PEAR installation on a shared host via PEAR_RemoteInstaller and other means.
See Installation of a local PEAR copy on a shared host for instructions.

I think no auto logic... you have to includes your PEAR directory based on logic
use IF ELSE or SWITCH CASE statment to set up your logic to include or require that..
thanks

Related

How to include PEAR packages by only including the PEAR.php file?

I'm using PEAR on a hosted website and I want to use the MDB2 package.
Every site on the web initializes the MDB2 package with an require('MDB2.php').
Sadly, my web host only provides to me the location of the main PEAR.php file.
But I think I remember a method of including PEAR packages without specifically including them by file name, but using the global PEAR class by calling some static function.
Sadly I ran through the documentation several times and tried to Google every combination of keywords that could help me find the solution but I didn't find it.
So, is this possible?? And if so, how do I do so??
Thanks a lot, I've been looking for multiple hours now :(
Steven
No, it is not possible to load pear packages through the PEAR class.
The only official way to include a pear package is to require/include the file you want to use:
require_once 'MDB2.php';
Also, your web host probably will not have MDB2 installed, so you need to ship it yourself. See the installation on a shared host manual.

what is the use of go-pear.php ? What it does actually?

Can anybody tell me why do we need to install a set of classes using a script ?
PHP PEAR Lib is essentially a set of classes, is it fairly good to just copy in the hosting server.
So is go-pear.bat go-pear.php is necessary or its an optional. If it is necessary would like to know why?
It is only a tool to help install PEAR classes for all users on the machine.
If you are only going to use a PEAR class in a single project, you can easily just grab the class from it's download page and bundle it with the app.

custom php library with pear local installation

Hello i wish to be able to deploy a PHP web application along with a local installation of PEAR.
To be more specific, i am trying to find a way to do a 'per-application' or local installation of PEAR if this is possible.
For example:
The application 'MyApplication' is located in: /var/www/applications/myapplication
The php library is located in: /var/www/applications/myapplication/library
I am looking for a way to do a per-application installation of PEAR since not all applications are managed by me (and i want to control which PEAR packages are installed and when).
I found some tutorials for a local PEAR installation (on a shared host) but i don't know if my scenario fits the one for a local PEAR installation.
Any thoughts/help appreciated.
We use this approach for our deployments.
For each deployed app, we create externals/pear directory via:
pear config-create /path/to/app/externals /path/to/app/conf/.pearrc
Then we reset the include path for PHP to only have the /path/to/app/externals/pear/php directory.
We have been using this approach for a couple of years with great success.

Why does PEAR get installed to my user directory?

I am new to Linux and I am attempting to install the PHP PEAR library on a virtual server which is running Ubuntu. I am following a tutorial that covers installing PEAR but have run up against an area where I am confused. When running the PEAR installation program I am prompted as to what I want the INSTALL_PREFIX to be. Evidently the INSTALL_PREFIX, among other things, determines where PEAR will be installed. The tutorial suggest the value of INSTALL_PREFIX be the following path ...
"/home/MY_USER_NAME/pear"
where MY_USER_NAME = my user account
Having come from a Windows world, applications are installed on the system where everyone can use them. If I install PEAR underneath my user directory will other developers on the system be able to make use of PEAR in their PHP scripts? I want to make PEAR available to all users and not just myself.
Could someone explain to me the difference between installing for all users and installing just for myself? Does the install location matter? Should I be installing PEAR in a different location?
Thanks for any suggestions.
P.S. The tutorial I am following is located at the following URL ...
http://articles.sitepoint.com/article/getting-started-with-pear/2
Amend your INSTALL_PREFIX...
typically PEAR gets installed to /usr/share/php/
Have you read through the install section on the PEAR site?
There is no law against giving others access to your home directory but in practice it is never done. If you wanted to do that you would have to set the correct directory permissions and the other users would need to put your stuff on their PATH. But don't, it's bad if only because others can see all your stuff, accidentally (or maliciously) delete things, etc.
You should read a few things on file system standards and file system hierarchy and figure out what is appropriate for you system. Usually it will be something like /opt or /usr/local which will be accessible to all users. Usually you will need to have root permissions to install in global locations.

XML/Parser.php installation

I recently signed up to shared web hosting with godaddy using Linux and PHP 5. I want to work with multiple RSS feeds. I previously had this all functioning under Apache, however, the host supplied the PEAR installation. Now I have to do this myself and I am in unfamiliar territory.I installed PEAR PHP and managed to get rss.php in the pear directory. It now asks for XML/Parser.php and I do not want to spend another week finding where and what to do.
Can you please inform me where i can find this routine and whther there is any problem in just copying it into the PEAR directory with ftp?
You can always just create some subfolder in your project and extract any PEAR libraries directly there, it's just plain php scripts. You will have to add that folder (and subfolders) to your include path so everything will be accessible.
It is considered as a bad practice because you will have to manually update PEAR libraries and stuff, but it gives you independence from your hoster.
Your PEAR (or other libraries) classes can be anywhere. You just need to set correct include paths where script will search for required code. If you can't access php.ini, you can get include paths by using get_include_path() function and set them using set_include_path();
I highly recommend SimplePie feed parser over the PEAR::XML_Feed_Parser. Usually the PEAR libraries are great but they don't support several common types of feeds (I believe Atom 0.3 among several others). Also there is very little documentation about how to use it and (clearly) how to install it.
Simply include the SimplePie library and point it at your feed and it does the rest. It's easy to query for any data you want regardless of schema differences. It's also very fast, we're using it to aggregate hundreds of feeds over at http://www.feedscrub.com.
Hope that helps!
echo ini_get('include_path');
This should show the include the path to PEAR on the original host environment, from there if its not to big just wrap the entire mess up with tar -cjzf devPear.tar.bz path2pear/ .
Copy this tar file over to GoDaddy, extract to a safe location... then in .htaccess or at the start point of your application scripts, add this pear package into your include_path.
Alternatively:
If you have administrative rights, I believe there is a pear.php command called "installed" that shows all installed pear packages. If you also have pear administrative rights on the new environment, you can go down the line doing copy and paste of the package names you need to pear --install "package" name.
The second is a little cleaner, but the first will be faster... just accept these packages will be effectively stranded from the pear system and unable to be updated.

Categories