Project has now been moved to github. Click here to follow. This page won't be updated anymore. Ever.
Not that I can guarantee that github will...




WALL4PHP is implementation of WALL (Wireless Abstraction Library, originally created by Luca Passani for the Java platform; more info at WURFL's site) for PHP. It is NOT implementation of JSTL for PHP (though it can be done with some small tweaks). Discussion is going on at Y! group wmlprogramming.

If You use it somewhere, let me know. It is allways good to know that you are creating something that people actually use :) I will not disclose this information unless you agree with that.

Something about this THING

The main point of Wall is to help out developers, who create sites mainly for mobile devices by providing a simple generalized markup language.

For example, some devices support XHTML, some others WML. You might not know that, but in Japan there are Imode devices, which support something like modified HTML. It could be painful writing three versions for provide maximum statisfaction for the end-user. And problem does not end here. Some devices support some extensions for either of these languages. Some do not support some basic features. How could we know that?

From a case study. Let's assume, that you want to bold some text within a link (anchor). In WML this would look like <a href="link">this is <b>bold</b> and this is not</a>. And for XHTML you could write analogue code, but using <strong>. Where's the catch? Some devices do not support bolding text within an anchor. Furthermore - they choke, and throw an error. End user is upset. You are upset.

Well, Wall takes these questions away from you. It should be mentioned, that database, which contains each device's characteristics (preferred markup, features, and much more) is called WURFL (more info at WURFL's site). That is where WALL gets info about required device. Interface with WURFL (which, in fact, is a huge XML file) for PHP is provided by PHP Tools in simple OOP way.

Now, WALL is an easy way to solve your problems. In a case above you now should write this way: <wall:a href="link">this is <wall:b>bold</wall:b> and this is not</wall:a>. WALL library takes it from here and shows XHTML to those devices, which understand it, WML to other. And even more - if a device (according to WURFL) does not support bodling text within anchors, it removes it (generated WML code is without b elements).

Just remember. This library is made for wireless devices and not browsers like Firefox or Internet Explorer. Forget it. If you want to create rich pages wich make use of features which PC browsers provide, do it the right way - go nuts with XHTML 1.0, Flash, JavaScript, SVG and other sexy and rich things. IIf you want to create webpages which are optimized for wireless devices with limited capabilities and small screens, check out WALL. Why focusing for mobile devices? Because, if you want to create something that universal, markup would become too complicated.

Some examples

Download Wall4PHP

Dec 29, 2006 - v1.1 release
Wall4PHP-1.1.tar.gz (~984KB)
Lots of bugfixes. Works with Tera WURFL. You will need to download and configure Tera WURFL by yourself and then adjust your wall_prepend.php file (see bundled one and changelog.txt for hints). Trying out some wikis as an option for Wall4PHP page remake.
May 09, 2006 - v1.01 release
Wall4PHP-1.01.tar.gz (~1.1MB)
Small feature and a little of bugfix release. Still thinking about page remake.
Feb 17, 2006 - v1.0 release
Wall4PHP-1.0.tar.gz (~977KB)
At last - release. There were no bug reports for over three months. This can mean only one - Wall4PHP is probably releasable. Thinking about page remake.
Sep 15, 2005 - v1.0 beta 2
Wall4PHP-1.0beta2.tar.gz (~970KB)
Second beta. Now i've implemented all tags, which are supported with original WALL. Fixed lot of bugs and some compatibility issues with PHP5. Still - need to work on error reporting (with output buffering it is not as easy as it would seem). If in need, turn on error logging in php.ini and follow log file. Packed with newest wurfl.xml. Now even if an error occurs, all output buffers are flushed. So - all errors are being displayed.
May 17, 2005 - v1.0 beta 1
Wall4PHP-1.0beta1.tar.gz (~720KB)
Second release (tried to give it a beta look). For testing purporses only. Feedback wanted badly. Fixed some most annoying errors. Added some lines of code so error displaying (if enabled via PHP configuration) works as expected from common PHP files. Added programmatic way of checking for multiple inclusion of wall_prepend.php. Packed with newest PHP tools.
Jan 10, 2004 - v1.0 alpha
Wall4PHP-1.0alpha.tar.gz (~182KB)
First (initial) release of Wall 4 PHP. For testing purporses only.


PHP4 or PHP5. That's it :)


Unpack downloaded archive. Copy file Wall.php and directory Wall to somewhere in PHP include path. Open file wall_prepend.php in Your favorite code editor. Make appropriate changes. Allow webserver's user to write into DATADIR. See WALL reference Guide, sample files, which are provided with this archive, and You are on!

Something to note (updates)

Don't forget to follow changes made to WURFL XML file and php tools by Andrea. And, of course, WALL4PHP will be improved and changed, as time goes on...

Contacting me

If You want to contact developer (funny, but it's me:) directly, mail to wall4php[R.E.M.O.V.E. T.H.I.S.]@[R.E.M.O.V.E. T.H.I.S.] My name is Kaspars Foigts, if you need to know.

Supported tags

Not yet supported tags

None noted yet


Here goes todo list. Or wishlist. Or however you name it.