Application Programming Interface
p. I was just thinking how nice it would be if more open-source PHP applications offer some sort of API(Application Programming Interface) for their application. It would really be useful specially when the application is likely to be integrated with another.
p. For example, I have “phpBB2”:http://phpbb.com and “Coppermine Gallery”:http://coppermine-gallery.net. Yes, there’s already a Coppermine-phpBB bridge to tie the forum users to the gallery. But other than that, I have no other means of communication between the two. What if I want to display a link to a user’s gallery in each of his post, along with the usual buttons (profile, ims, etc)? What if I wanted to display randomly picked images from a user’s gallery and display it in his/her profile?
p. Ways of accessing an application’s functionalities from outside might range from a simple, block copy-paste solution and/or directly talking at another’s DB(database) tables… to hellish insert-here-to-there hacks and conflicting variable hunts that span several files. Some people would find themselves reading and studying in detail how both applications to come up with a way to make them work together. In-depth knowledge is good. But sometimes you don’t have for that and might be an overkill in some cases. I don’t want to see how that cow got in there, I just want my hamburger.
p. If both had an available “API(Application Programming Interface)”:http://en.wikipedia.org/wiki/API, I don’t have to go through all that trouble. I would already know what it could do and know how to make it do things without dealing with unrelated stuff. And if I ever have to make it do something out of the ordinary, I will know where to look at.
Plugins just crossed my mind (it should… I’m using “WordPress”:http://wordpress.org). Some apps come with their own plugin system, so you can extend the application and often times import some functionalities from outside the application… kinda like what an API does. But I don’t think they can replace APIs. In fact, they need APIs to exist. The application provides a some sort of a Plugin API for building plugins. Hmmm… using Plugin APIs to build a plugin that communicates to another application via the API the other app provides. Sweet. I don’t have to deal with how the inside works. I just need something to connect them from the outside.
By the way, if anyone reading this knows some open-source projects (in PHP) that have an API available, please do comment. Already found one, “SMF(Simple Machines Forum)”:http://www.simplemachines.org, a forum software. The API is just in its “pre-release”:http://www.simplemachines.org/download/?tools though, but sure looks promising.
I’m sleepy and could no longer think clearly. I hope I made some sense in this post.