Adding a custom resource type to the Zend Framework autoloader

PHP, Zend Framework
Because I can never remember how to do this and because it's not that easy to find on google I have copied the info here. If you want to add a folder to the application directory and then have classes within that directory autoload, for instance you add a folder 'objects' (application/systems) that contain classes like Application_System_One. This would work for any Application_ classes and its exactly what the Zend Framework autoloader does when it inits the default resorces like application forms, models, services etc. Here's what you need to do: Full credit goes to http://pietervogelaar.nl/ for this copy and paste. This week I wanted to created the folder "application/grids/" to store my grids in. For example the path to the grid is "application/grids/Product.php". The code inside this PHP file:…
Read More

PHP MSSQL & PDO_DBLIB (FreeTDS) support on Mac OSX 10.9 Mavericks

Mac, PHP
So since upgrading to Mavericks I have lost the ability to use PHP's MSSQL and PDO_DBLIB database extensions. I had previously set this up on Lion/Mountain Lion. You'll need to download the latest Xcode from the Mac App Store and then run it and install the command line tools. This will allow you to build the packages below. We'll also need autoconf so download the latest source at autoconf-latest.tar.gz. At the time this article was published the latest release was v2.69. Extract this and then using terminal navigate to the extracted source directory and run the below commands: ./configure make sudo make install Now on to FreeTDS, this is the library that will connect to MSSQL. Visit this link to get the latest stable version of FreeTDS: freetds-stable.tgz. At the…
Read More

Using syslog for your PHP application logging

Linux, Mac, PHP
In the past I have created custom log files for my PHP applications, mainly because I'd never bothered to read up on syslog and I wasn't using it for major stuff. This time I decided to do the reading and syslog really does have lots of benefits and is just as quick to set up as custom logging. Anyway, I found this nice overview and examples of how you can use syslog with your application. Check it out - Using syslog for your php applications
Read More

PHP memcached on OSX Lion

Mac, PECL, PHP
Having set up the PHP memcache extension on my mac yesterday I now need the PECL memcached extension to use with Zend_Cache. This one was a little more involved than yesterday so here is a quick list of things you'll need to do. My first instinct was to use PECL to get the extension but doing that told me that there was an unmet dependancy so it couldn't be installed. The missing dependancy was libmemcached, here's what you need to do to get libmemcached setup: First go to https://launchpad.net/libmemcached/+download and download the latest libmemcached (1.0.4 at the time of writing), once downloaded extract the archive and then open up a terminal window and cd to the new libmemcached-1.x.x directory. Now enter the commands below into the terminal window one at…
Read More

PHP memcache extension on OSX Lion

Mac, PECL, PHP
Today I needed the PHP memcache extension on my Mac OSX Lion 10.7.3 development machine for a project I'm working on. I was pleased to find out that this was a nice and easy one to get up and running. Open up a terminal window and run the command below, this will tell PECL to download, build and install the extension. sudo pecl install memcache Now that the extension is installed on your system, you need to enable it in your PHP configuration file. On a standard system the php.ini file can be found at /etc/php.ini. Open the file and scroll down to the extensions section, at the bottom of this section add the line extension=memcache.so and then save and close the file. After that, all that is required is…
Read More

Using PHP and CURL to log in to a website

PHP
The other day I wanted to automate some downloading from a username and password secured website. I wrote a quick script and it is working like a dream, below is the CURL part of the code that does the logging in and download. $username = 'myuser'; $password = 'mypass'; $loginUrl = 'http://www.example.com/login/'; //init curl $ch = curl_init(); //Set the URL to work with curl_setopt($ch, CURLOPT_URL, $loginUrl); // ENABLE HTTP POST curl_setopt($ch, CURLOPT_POST, 1); //Set the post parameters curl_setopt($ch, CURLOPT_POSTFIELDS, 'user='.$username.'&pass='.$password); //Handle cookies for the login curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); //Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL //not to print out the results of its query. //Instead, it will return the results as a string return value //from curl_exec() instead of the usual true/false. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //execute the request (the…
Read More

PECL UUID extension on Mac OSX

Mac, PECL, PHP
Today I needed to set up the PECL UUID PHP module on my Mac OSX 10.7 Lion development machine, I needed it for a project that I'm working on. My first reaction was to fire up terminal and run sudo pecl install uuid. It all looked good for a moment but then came to a grinding halt when 'make' failed. Here is the error for reference (and for those searching snippets of it): cc -I. -I/private/tmp/pear/temp/uuid -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-rootEEpqkn/uuid-1.0.2/include -I/private/tmp/pear/temp/pear-build-rootEEpqkn/uuid-1.0.2/main -I/private/tmp/pear/temp/uuid -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/include -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/temp/uuid/uuid.c  -fno-common -DPIC -o .libs/uuid.o /private/tmp/pear/temp/uuid/uuid.c: In function ‘zm_startup_uuid’: /private/tmp/pear/temp/uuid/uuid.c:89: error: ‘UUID_TYPE_DCE_TIME’ undeclared (first use in this function) /private/tmp/pear/temp/uuid/uuid.c:89: error: (Each undeclared identifier is reported only once /private/tmp/pear/temp/uuid/uuid.c:89: error: for each function it appears in.) /private/tmp/pear/temp/uuid/uuid.c:90: error: ‘UUID_TYPE_DCE_RANDOM’ undeclared…
Read More

Installing and setting up PEAR

Mac, PHP
This post will help you get PEAR installed and up and running on your machine, there are two options to below, one describes an OXS Lion specific setup and the other is more generic. Installing on OSX 10.7 Lion OSX Lion already has the PEAR install bundle so there is no need to download it, open up a terminal window and enter the following commands: cd /usr/lib/php sudo php install-pear-nozlib.phar   Downloading and installing Do not follow this part if you have just done the above steps. Otherwise enter the below into a terminal window: curl http://pear.php.net/go-pear.phar > go-pear.php sudo php -q go-pear.php It will ask you to enter a new installation base ($prefix). I recommend you use /usr/local   Configuring PHP include path Edit /etc/php.ini and find the line: ;include_path = ".:/php/includes". Uncomment it…
Read More