|
|
Posts Tagged ‘quercus’
Saturday, December 29th, 2012
I just extended Quercus to support the new core language features of PHP 5.4. The changes are currently in our subversion repository and should be in our next release: 4.0.34. Traits, new in 5.4, was a bit of a pain to implement because of all the weird edge cases (i.e. __CLASS__, insteadof, as). Here’s a list of what’s new:
- traits
<?php
trait T0 {
function foo()
{
echo "inside T0->foo()\n";
}
}
class A {
use T0;
}
$a = new A();
$a->foo();
?>
(more…)
Tags: php 5.4, quercus, traits Posted in Announcements, Engineering | 2 Comments »
Thursday, December 6th, 2012
The following article originally appeared on JavaAdvent 2012.
It’s been a 3.5 years ago to this day since I last wrote about running Quercus on Google App Engine (GAE). The article detailed a crazy experiment to get a PHP application, Wordpress, running on GAE. I still remember it being a painful experience because of number of changes I had to make to Wordpress to get it working. It was all due to the GAE Java environment being so drastically different from what Java developers were used to. It was heavily sandboxed and had no SQL support. You couldn’t launch new Threads. You couldn’t write to the file system. But those were the tradeoffs you had to live with if you wanted to deploy your application to the all-wonderful Cloud.
Fast-forward to 2012 and GAE has come a long way. GAE now allows you to spawn new Threads (currently in beta). You still cannot write to the file system, but for all it’s worth there is a new GAE Files API that gives you file-like concepts. And you can run your very own MySQL instances on Google’s infrastructure (albeit Google’s customized version of MySQL).
What hasn’t changed over the years is that you’re still expected to hit major roadblocks as you migrate your existing web applications over to GAE. And you’ll have to make heavy modifications to your application to 1) make it work and 2) be performant on GAE.
So this is where Quercus comes into the picture. At Caucho, we spent a lot of time getting Quercus to work seamlessly with GAE. Our goal was to abstract the GAE details away so that developers don’t have to worry about the fact that the application is running on GAE. Things just work transparently behind the scenes for PHP applications. For example,
- PHP file_*() functions work just like they do before (including writing to files!)
- PHP mysql_*() functions and PDO work just like they do before
(more…)
Tags: google app engine, google cloud sql, google cloud storage, php, quercus, wordpress Posted in Engineering | 5 Comments »
Friday, February 5th, 2010
I gave a talk Wednesday at the Silicon Valley Google Technology Users’ Group on using Quercus in the App Engine. One of the examples I gave was using the low-level data API from PHP and scheduling PHP “tasks” using Task Queues. I’ll walk through the source of that demo here to give you an idea of how Quercus makes it easy to mesh a Java platform with PHP code. At the end, I’ll also give you an idea of what the next steps would be to take this demo and use the techniques in a real application or framework.
(more…)
Tags: google app engine, google datastore, php, quercus Posted in Engineering | 5 Comments »
Friday, January 15th, 2010
 Sample JVM Graph from Resin Admin
We’ve been doing a lot of work on our Resin administration application over the last few releases, adding features like statistic graphs, postmortem reports, and REST. The framework we’re building for these features is also quite extensible and easy to use. One of the in-house extensions we developed combines the REST and graph features so that you can export and embed user-defined graphs. We’ve added this extension to the main application for the upcoming 4.0.4 release so it’s available without any coding. In this blog post, I’ll show you how to embed Resin statistics graphs in your own monitoring tools, how the underlying graph API works, and give some tips on how to write your own similar extensions.
(more…)
Tags: administration, canvas, graphs, html5, quercus, resin, REST Posted in Engineering | No Comments »
Tuesday, November 17th, 2009
Starting with Resin 4.0.2 (due out within a week), the Resin administration application supports a REST interface for grabbing server information. In this blog post, I’ll give an overview of the REST interface, how to write plugins, and even how to integrate with Nagios.
(more…)
Tags: nagios, quercus, REST Posted in Engineering | No Comments »
Thursday, July 2nd, 2009
For version 4.0.1, we have added Quercus compilation support for other application servers including Tomcat, where before the interpreted mode was only available. The compiled mode is significantly faster than the interpreted mode (though the interpreted is still quite speedy compared to PHP on Apache). Quercus compilation will also work on Google App Engine, but there’s a requisite that files be pre-compiled.
(more…)
Tags: compilation, google app engine, php, quercus, tomcat Posted in Announcements, Evangelism | 8 Comments »
Friday, May 22nd, 2009
The nice folks organizing the Google I/O conference have given us an extra day to demo Quercus on the App Engine, so Nam and I’ll be there both Wednesday (12-6pm) and Thursday (12-4:45). It’s perfect timing too, because Nam has just finished an incredible demo that goes way beyond my meager efforts. He’ll be writing up a blog post about it soon, so I’ll have to just leave you in suspense until then…
Tags: google app engine, quercus Posted in Announcements | 3 Comments »
Monday, May 4th, 2009
We use WordPress for this blog and I recently upgraded to the 2.7.1 version. The developers have started using a .htaccess file with Apache mod_rewrite rules, so we need to emulate that to support certain things like permalinks. This is a quick and trivial example, but it gives a glimpse at our new rewrite dispatch syntax in Resin 4.
(more…)
Tags: quercus, resin 4.0, wordpress Posted in Engineering | 2 Comments »
Tuesday, April 28th, 2009
By adding Java to their App Engine, Google has opened the door for a whole slew of languages that have been implemented on the JVM, now including PHP via Quercus. For the last couple of weeks, I’ve been looking at Google App Engine and what its possibilities are for Quercus. Some folks from a PHP shop in Britain got Quercus running, but the version they were using was pretty old and seemed to come from a bizarre cross slice of our SVN repository. We wanted to make sure that the current version of Quercus runs on GAE with all its performance and compatibility enhancements. So Scott created a GoogleQuercusServlet just for the task. I wrote up how to get started using Quercus on GAE and some notes about what PHP can and can’t do within GAE at the moment.
(more…)
Tags: google app engine, quercus Posted in Engineering | 17 Comments »
|