noloh Logo SmallDeveloper Zone
remember meforgot password?Login
plusdocumentRecently Posted
plusdocumentJuly 2011 (1)
plusdocumentJune 2011 (1)
plusdocumentMay 2011 (3)
plusdocumentApril 2011 (1)
plusdocumentMarch 2011 (2)
plusdocumentFebruary 2011 (1)
plusdocumentJanuary 2011 (1)
plusdocumentDecember 2010 (1)
plusdocumentNovember 2010 (1)
plusdocumentOctober 2010 (1)
plusdocumentSeptember 2010 (1)
plusdocumentAugust 2010 (2)
plusdocumentJuly 2010 (1)
plusdocumentJune 2010 (3)
Subscribe via RSS
Add Notes to Your Licensesby Asher Snyder, Tue Jul 19th, 2011

We recently made some changes to our downloads section. You can now add notes to your licenses. For example, if you have an Enterprise License for which you set an IP, you can now add a note to the IP making it easier for you to identify it among your other IPs. The same applies to Professional Licenses and its domains, and even your localhost license.

The process is simple. Whether its an IP or domain you're submitting, you first enter the corresponding information and press "set".

Enter Field Information

Next, press the new plus button next to your set item.

Add Note Button

This will open a modal window where you can add whatever note you wish:

Add Note Window

Finally, after you save your note, you'll see the note under your item. Please also notice the delete button next to your note, which allows you to delete the note for that item, enabling you to repeat this process.

Viewing Note and Delete

So there you have it. We hope this makes managing your NOLOH licenses easier. We'll be making even more updates to and in the coming weeks.

Licenses, Notes, Site Updates
NOLOH 1.7.703 Postedby Asher Snyder, Sat Jun 11th, 2011

NOLOH 1.7.703 is now available. You can of course view the complete changelog here. This is a maintenance release and includes several bug fixes, improvements and one new feature.


Animate Width or Height to System::Auto/Null: When using Animate you can now use Animate::Height, Animate::Width, or Animate Size with System::Auto, or NULL as the to parameter. System::Auto will animate to the object's natural dimension of the property and set it, while NULL will animate to the natural dimension of the property and then set the property to NULL.

This is useful when using object's with null width and height, or with various non-standard layout mechanisms and custom controls behaviors.

For example:

$text = new MarkupRegion('Text/Prose.htm', 10, 10, 200, 0);
//... Somewhere later in your code
Animate::Height($text, System::Auto);
/*Alternatively, you could also use null if you prefer
for your object to have a null height afterwards.*/
Animate::Height($text, null);


  • Animation Followup Fix: Fixed an oversight left by previous animation changes.
  • RichMarkupRegion Improvements: Minor performance improvements to RichMarkupRegion.
  • Minor Internal Improvements: Changed numerous calls so use the newer ClientScript equivalents.
  • Minor Speed Improvements: Updated all calls from deprecated _NSetProperty to _NSet

As always, you can use it right away in your free hosted NOLOH sandbox, or you can download it at Enjoy!

NOLOH, New Features, Animation, Update
NOLOH 1.7.698 Postedby Asher Snyder, Fri May 27th, 2011

NOLOH 1.7.698 is now available. You can of course view the complete changelog here. This is a maintenance release and includes several bug fixes and improvements.


  • Another ListView Selectable Issue: Fixed issue where using the default Selectable CSS style would result in an undefined class, rather than the desired one.
  • ListView Selectable Bug: Fixed issue where setting a ListView to Selectable would result in an error.
  • ListControl SelectedPosition Property: Added SelectedPosition property to ListControl, allowing you to get the numerical position of a selected Item. Since ListControl is the ancestor of numerous Control, all Controls that inherit from it have this property too.

    //For example
    $list = new ListBox();
    $list->Items->AddRange('Item 1', 'Item 2');
    //.... Later on in your code
  • ListBox SelectedIndex Issues: Fixed issue where removing an Item from a ListBox would result in the SelectedIndex returning return the numerical position of the Item, rather than its index.
  • Item __toString: Added __toString to Item so that you can log the Items ArrayLists of objects, along with logging individual Items.
  • ControlPair Alignment Issues: Fixed issue with ControlPair where using compound Components, such as your own Component, with Layout::Horizontal would overlap your First Control.
  • Incorrect client-side order during Adopt: When Controls changed parents to other Controls, their order on the client was sometimes off.
  • Older Opera Mobile: Older versions of Opera Mobile (< 11) had issues such as incorrect viewport and zoom. Enjoy!

NOLOH, Download, Update, Mobile
NOLOH 1.7.688 Postedby Asher Snyder, Fri May 13th, 2011

NOLOH 1.7.688 is now available. This release includes various bug fixes along with significant improvements and new features. You can view the complete changelog here.


  • MobileAppURL Configuration property: Allows a developer to specify a URL that a mobile user will be redirected to for their mobile-specific app.
  • Mobile-specific app: The MobileApp interface allows a developer to specify that their WebPage is meant to be a mobile-specific app.
  • UserAgent Mobile detection: UserAgent class now detects (and has corresponding constants) for various mobile devices including iPhone, Android, Blackberry, Palm, WindowsMobile, and other proprietary mobile devices.
  • Documentation Improvements: Minor improvements to various class function documentation
  • ListView Improvements: Several minor and major improvements to ListView:
    1. Ability to use callback with null columns (makes all columns available in $BoundData without having to specify which columns you want to bind to, however, using this approach you would either have to use all columns, or specify the columns you want in your callback)
    2. Ability to have null column values, without messing up column order
    3. Ability to use non-displayed columns anywhere in column order, i.e. array(id, false) in the middle of your columns
    4. Several speed improvements
    5. Minor revisions to default look and feel
    6. Column headings take up full column-width, allowing for left, center, and right alignment
    7. Improved row rendering and styling

I would like to take a moment to explain the most significant of these new features, MobileAppURL, and Mobile-specific app.With the proliferation of mobile devices there's a possibility you'll want a mobile specific version of your website or web application. Of course, all NOLOH apps work fine in all mobile devices, however, certain apps may call for a completely different design, or a different approach so that the tasks your user wants to do are readily accessible without needing to zoom or navigate your non-mobile oriented app.


So, rather than force you to do your own detection and URL::Redirect to your mobile oriented app, there's a new MobileAppURL configuration option (although in most cases you never need to set configuration options, they do exist). If set, NOLOH will automatically detect whether the user is on a mobile device, and redirect them to the URL specified in MobileAppURL.

For example:

class FullFeaturedApp extends WebPage
    function __construct()
        parent::WebPage('Comprehensive Everything Portal');
        $this->Controls->Add(new ComprehensivePortal()); 
//Rarely used Configuration and almost forgotten Application::Start()
$config = new Configuration();
$config->MobileAppURL = '';

Remember, this is optional, if you leave it out, then your application will continue to load and render perfectly for the targeted mobile device.

Mobile Specific Apps

As mentioned before, you might want a mobile specific app that's only geared towards mobile devices, and not desktop oriented devices. You may have noticed that when you previously tried to create what you laid out as mobile specific and ran them in a mobile browser you were zoomed out. The new Mobile specific option addresses this. As is the spirit of NOLOH, you can continue to write your mobile specific apps exactly the same way you write your non-mobile specific. The only difference is that you add implements MobileApp. For example:

//Just like your normal app, but with implements MobileApp
class MobilePortal extends WebPage implements MobileApp
    function __construct()
        parent::WebPage('Mobile Portal');
        $this->Controls->Add(new Label('MOBILE', 0, 0, '100%', 40))
        $this->Controls->Add(new Button('Clicky'))
            ->Size = array(100, 50);
        $this->Controls->AllLayout = Layout::Relative;

The image on the left shows how your app looks without implements MobileApp, the image on the right shows how it looks WITH implements MobileApp:

Side by side comparison of MobileAppURL effect

That's it. Your mobile specific app will render with the proper zoom for whatever mobile device is viewing it. Naturally, the MobileAppURL option coupled with MobileSpecificApps helps to streamline your mobile development efforts should you choose to take advantage of it.


  • ListView Style Changes: More efficient default styling for ListView
  • Minor DataReader Improvements: Minor changes to how DataReader determines an intersection for objects that Bind to data sets with constraints.
  • RolloverTab SetSelected to null: You can now set RolloverTab's Selected to NULL. Doing so will remove the Selected state from your RolloverTab. For example, if you wanted to have an Out, Over, and Down state, but without the permanent selection or need to toggle once selected.
  • ControlPair Improvements: Several minor improvements, including improved Layout::Relative support. When adding ControlPairs to a container you can now set the ControlPairs layout to Layout::Relative and they'll stack on top of each other rather than appearing to the left of each other.

As always, you can use it right away in your free hosted NOLOH sandbox, or you can download it at Enjoy!

NOLOH, Mobile, New Features, Bug Fixed, Mobile Apps, Viewport
Philip Ross Speaking at PHPDay 2011by Asher Snyder, Mon May 2nd, 2011

We're happy to announce that Philip Ross, Director of R&D of NOLOH will be speaking at phpDay in Italy this May. He will be presenting "Comet: Pushing the Web Forward". If you're going to phpDay, we encourage you to stop and chat with Phill. Feel free to ask him any questions you have, whether they're NOLOH or Comet related. We look forward to seeing you there.

phpDay 2011

phpDay, Conferences, Comet, 2011
NOLOH 1.7.677 Postedby Asher Snyder, Fri Apr 1st, 2011

NOLOH 1.7.677 is now available. You can of course view the complete changelog here. This is a maintenance release and includes several bug fixes and improvements.


  • Configuration Documentation: Added documentation to the Configuration class
  • ListView Binded Sort Improvements: Improved ListView's sort when it's bound to a data source with constraints. Previously, binding to a query with multiple column aliases would not sort properly.
  • Classname duplicates: Under certain conditions, the className of an object sometimes accumulated duplicates.
  • Image Tooltip for SEO: Under certain conditions, the Tooltip text was not sent to search engines correctly.

As always, you can use it right away in your free hosted NOLOH sandbox, or you can download it at Enjoy!

NOLOH, Download, Update, ListVIew
NOLOH 1.7.673 Postedby Asher Snyder, Fri Mar 25th, 2011

NOLOH 1.7.673 is now available. You can of course view the complete changelog here. This release includes several bug fixes and improvements along with major improvements for iPad and iPhones. Specifically NOLOH now includes new UserAgent constants to detect for slate devices, such as an iPad. In addition to better behavior of Rollover classes, allowing you to not have to worry about the unnecessary over state, which previously resulted in an unnecessary extra click. Also, improvements were made to handle an iPad's rotation better, so you no longer have to worry about your Shifts going awry.


  • IPad Support: Mostly implementing drag and drop through Shifts, but also minor improvements like better behavior of Rollover classes which previously required two sequential taps to Select.


  • Improvements to ListView Binding and Sorting: Performance is improved when sorting or binding a ListView to a long SQL query.
  • ListView Peformance Improvements: Improved the way ListView sends/receives data to the client. Improved ListVIew's dynamic binding capabilities.
  • IPad ShiftWith Body: Would previously cause instability
  • UserAgent class: Now supports detection of IPad and IPhone

You can use it right away in your free hosted NOLOH sandbox, or you can download it at Enjoy!

NOLOH, Download, Update, iPad, iPhone
NOLOH 1.7.667 Postedby Asher Snyder, Sat Mar 12th, 2011

NOLOH 1.7.667 is now available. You can of course view the complete changelog here. This is a maintenance release with the following bug fixes and improvements:

  • Better 3rd Party External Script Handling: Improved handling of 3rd party scripts via ClientScript::AddSource
  • Minor Performance Improvements: Minor improvements to several client-side along with minimization of data sent to client in the case of Labels with null dimensions.
  • UserAgent class: Several new functions and constants added to allow an ever-expanding system of supported clients.
  • RichMarkupRegion Eventees Events not Setting: Fixed issue where setting the resetting the Text of a RichMarkupRegion and then assigning events to the eventees would not work.

You can use it right away in your free hosted NOLOH sandbox, or you can download it at Enjoy!

NOLOH, Download, Update, Mobile Devices
NOLOH 1.7.663 Postedby Asher Snyder, Mon Feb 28th, 2011

NOLOH 1.7.663 is now available. You can of course view the complete changelog here. This is a maintenance release with the following bug fixes and improvements:

  •   Improved Compatibility with 3rd Party Libraries and Frameworks
    •   Previously when working with 3rd Party PHP Libraries or Frameworks that included their own auto include handler, without __autoinclude NOLOH would sometimes throw an error when attempting to access or use the library/framework. To workaround this you would often have to manually include the necessary files.

      This patch corrects this and allows you to use use 3rd party libraries or frameworks that have their own auto includes via System::IncludePaths or via the 3rd party's directions without any errors or prompts.

  • MarkupRegion & RichMarkupRegion Improvements: Minor improvements to the way MarkupRegion and RichMarkupRegion render.
  • Improved Support for SubItem CSS class additions: Fixed issue where adding a user-defined CSS class to a ListViewItem's SubItem would not take effect.
  • ListView Bind + Selection Issue: Fixed bug where Binding a ListView multiple times selecting a row would sometimes throw an error _N(key) is undefined
  • MarkupRegion Improvements: MarkupRegion and RichMarkupRegion can now identify the inner region when InnerCSSClass is used

You can use it right away in your free hosted NOLOH sandbox, or you can download it at Enjoy!

NOLOH, Download, Update
NOLOH's Notablesby Asher Snyder, Mon Jan 3rd, 2011

We're happy to announce that once again NOLOH is featured in this month's frameworks issue of php|architect. In this month's article titled "NOLOH's Notables" Philip Ross and I break down some of the best features of the NOLOH PHP Framework along with the relevant code samples. Best of all php|architect was kind enough to offer the article as a free download. So what are you waiting for? Download your copy now!

Frameworks Revealed, December issue of php|architect

PHP Frameworks, php|architect, top features
Lightweight, On-demand, and Beyond in php|architectby Asher Snyder, Tue Dec 14th, 2010

NOLOH is featured in the article "Lightweight, On-demand, and Beyond" in this month's php|architect. This article goes into detail about the performance benefits of the current version of NOLOH compared to the status quo, but it doesn't end there. It also reveals and details some of the exciting performance related features in the upcoming major release. If you've been curious about what's next for NOLOH, this article is a must read.

November issue of php|architect magazine

performance, php|architect, lightweight, on-demand, roadmap
PHP Barcelona and Zendcon 2010by Asher Snyder, Wed Nov 24th, 2010

This past month both Philip Ross and I attended and gave talks at PHP Barcelona Conference 2010 and Zendcon 2010. Both PHP Barcelona and Zendcon were excellent and I definitely recommend you attend at least one of them in the future. We would like to thank the organizers of both conferences for their graciousness and congratulate them for creating such an educational and enjoyable experience.

The End

I gave the talks Demystifying PostgreSQL and High Performance WebApps Faster & Easier with NOLOH at PHP Barcelona, and Demystifying PostgreSQL at Zendcon. Philip Ross gave the talk Comet: by pushing server data we push the web forward. You can view the slides for our talks, excluding the NOLOH talk (due to an unfortunate Camtasia accident), through the following links:

We look forward to attending these two excellent conferences again next year, we hope to see you there.

zendcon, php barcelona, conferences, talks
Updated Downloads Sectionby Asher Snyder, Mon Oct 4th, 2010

In case you hadn't noticed, we made some modifications to our Downloads center last week that we hope will improve your experience downloading new releases of NOLOH. In addition to being able to download your license and NOLOH kernel, now you can also download auto-complete stubs on a per-version basis. Below is an annotated screenshot of the new interface.

New Download Interface


Downloads, New Interface, Autocomplete, Stubs
Demystifying PostgreSQL in this month's php|architectby Asher Snyder, Fri Sep 24th, 2010

My article Demystifying PostgreSQL is out today in this month's issue of php|architect. If you've been on the fence, or just reconsidering your database, I highly recommend you give it a read. It covers the basics along with more advanced topics such as Views, Functions, Triggers, Full-Text Search and more.

php|architect September 2010

php|architect, PostgreSQL
Strict Output & Other SEO Improvements by Asher Snyder, Mon Aug 23rd, 2010

One of the most notable features of NOLOH is the automatic rendering of SEO (Search Engine Optimized) content to search engines when they crawl your website or WebApp. In this past weekend's update, version 1.7.598, we've made significant improvements to how NOLOH outputs your application's structure to search engines, improving the integrity of the contextual relationships of your content. Furthermore, any HTML that NOLOH outputs now adheres to the W3C's HTML 4.01 Strict standard.

w3c validation

The improved contextual relationships and strict adherence to standards should help increase your application's visibility to search engines. Rest assured that our improvements don't stop here, NOLOH will continue to implement the latest SEO techniques as they become known. As always, there's nothing you need to do to take advantage of these improvements, other than a normal update. Enjoy.

w3c, HTML 4.01 Strict, SEO, Improvements
Playing Nice with Lynx and Linksby Asher Snyder, Tue Aug 17th, 2010

We're very happy to announce that as of 1.7.593 NOLOH will properly render for text-based browsers such as Lynx and Links. One of the core tenets of NOLOH is to allow you to write your WebApp or website once and deploy everywhere, whether it's to a standard JavaScript enabled browser, or a JavaScript disabled text-browser you can rest easy knowing that the NOLOH will render as best it can in the most lightweight fashion for the target device. As always, there's nothing you need to do in order for this to work, other than a simple kernel upgrade. in Lynx browser

Please also note that if you use URL::SetToken in your application as specified in Bookmarks and NOLOH, NOLOH will automatically generate the appropriate links for the text-based brower so that a user can still navigate your application and get to your content, whether it's in a page paradigm, or in a pop-up modal. Enjoy!

Lynx, Links, Text Browsers, Compatibility
Automatic API Updates & Moreby Asher Snyder, Thu Jul 8th, 2010

One of the biggest issues we've had since we started to post frequent NOLOH kernel updates was the constant battle in keeping the API section in sync. We're happy to announce that we've just completed the API synchronization component of our build migrator. Now when a new build of NOLOH is posted you can rest easy knowing that the API docs has the very latest information for that build. 

We've also posted several minor improvements to the API documentation section:

  1. You can now click on any item in the parent class hierarchy list to navigate directly to that class's documentation.
  2. All our code excerpts are automatically beautified in addition to the existing highlighting to ensure a consistent syntax experience.
  3. Inherited members are back after a brief hiatus.

Details of API Modifications

We also wanted to share with you some of the exciting changes we'll be making to the API section in the days and weeks ahead:

  • Mixed types will have a tooltip detailing the specifics when available.
  • Function parameters will have a tooltip that elaborate any details of that parameter. 
  • Make constructors stand out so that they're easier to find.
  • Move static properties into their own section.
  • Add a "See Also" list to the class that can direct you to related classes.
  • Version each class and member so that you know what build a class or member was introduced.

We hope that you'll enjoy these updates.

api, updates, synchronization, coming soon
Demos, Demos Everywhereby Asher Snyder, Wed Jun 30th, 2010

Until now one of the biggest issues with was the need to sign-up for a free hosted sandbox, or download NOLOH in order to see it in action. No Longer. We're happy to officially announce the launch of's Demo section. The demo section allows you to play with live demos and examples, view their source, download the complete source, and even fork your very own version on github. We've taken the unprecedented step of integrating github into everything you see in the demos section. For those that take the initiative to create their own forks, your submitted changes will go live the very next day!

I would like to take a minute to go over the demo section with you so that you can get started with it right away. The two main components that make up the demo section are the demo-viewer and the source-viewer.

The demo-viewer is what allows you to navigate between demos, and download, view, or fork the demo's source.

Download, View, or Fork the Source with the demo-viewer

If you click on either the "View Source" button or the cog icon it will take you to the source-viewer for that demo. Once in the source-viewer you'll notice that a new pane opens to the left that displays the complete file tree of the demo you’re looking at. We decided to reproduce the source tree instead of the usual default of opening every file associated with the demo in order to best reproduce your normal working environment. Also, this has the benefit of giving you the ability to view all the files just as you would if you decided to download the source yourself.

Navigate source files with the source-viewer

Now that we have this new demo section the next thing we'll be working on is to populate it with as many demos as possible. We're planning to add several new demos a week. This will result in demos to help you get started, or clarify concepts that may be unclear. We'll also be adding a submission process so that you can submit your own demos that link to your github repository.

Needless to say we're very excited about this new section and look forward to adding many new demos in the days and weeks ahead. Enjoy!

Note: In case you were wondering, the demos section, like everything else in, was created in NOLOH.

Demos, github, fork, demo-viewer, source-viewer
You Can Now Run Your NOLOH Apps In Your Debuggerby Asher Snyder, Tue Jun 29th, 2010

Thanks to the most recent update to SourceGuardian you can now debug your NOLOH apps in your favorite IDE. This allows you to use step through your code, use breakpoints, watches and more. Please make sure to download the latest NOLOH kernel along with the latest SourceGuardian loader before you run NOLOH or debug in your IDE.

For more information on setting up debugging in your IDE, whether locally or remotely, see your IDE's documentation.

Since many of our users use NuSphere's phpEd and Netbeans here's a direct link to their debugging documentation:
NuSphere phpEd:

Debugging, xDebug, breakpoints, PHP debugging
First Blog Postby Asher Snyder, Wed Jun 16th, 2010

Welcome to NOLOH's first blog post! Throughout the past five years we've communicated to our community via e-mail, irc, and through our site updates. The NOLOH community has grown to a point where we now need a blog. This blog will host the latest news, updates, and musings from the NOLOH team. An RSS feed of this blog will be coming soon.

For all that are interested, the underlying technology of this blog is of course a NOLOH Nodule. We'll be posting it on our github in the coming week along with an example of it's use.

First Post, Blog
handlebgexpand left
Right Up Outer CornerRight Down Outer CornerLeft Up Outer CornerLeft Down Outer Cornersearch-bottomclassconstantpropertymethodarticle