PHP Classes

12 Years, 1 Million Users and Great New Features

Recommend this page to a friend!
  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog 12 Years, 1 Million U...   Post a comment Post a comment   See comments See comments (6)   Trackbacks (0)  


Viewers: 3

Last month viewers: 1

Categories: New site features

The PHPClasses site is completing 12 years of age today.

At the same time it is launching great new features that will allow the authors to submit or update their larger packages with much less effort.

Additionally, the users will be able to access the site without having to login when they return to the site after a long period.

Read this article to learn more about this celebration and these great new features.

Loaded Article


12th Anniversary, 1 Million Users, 10 Thousand Followers

Reduced Login Needs

Import Packages from Version Control Repositories

More Features to Promote Authors' Work

Other Site Improvements and Features

12th Anniversary, 1 Million Users, 10 Thousand Followers

Yes, it is true. The PHPClasses site reached 12 years of age. That is a lot of time for most sites on the Internet.

Practically at the same time, the site reached 1 million registered users. Actually, that extraordinary mark was reached last month, but I wanted to wait for the site anniversary to announce it.

Also recently the @PHPClasses Twitter account passed the mark 10,000 followers. That is probably the Twitter account of a site dedicated exclusively to PHP with more followers apart from the @php_net account.

All these impressive numbers would not have been possible if it was not for the contribution more than 3,100 PHP developers that have submitted about 6,000 packages to the site during all these years. So congratulations to all authors and to everybody else that helped spreading the news about this site.

Reduced Login Needs

One recurring complaint about the PHPClasses site is that it requires that the users be registered and logged to be able to download most packages.

This has been explained countless times, but let me clarify once more in case you do not understand why this is beneficial to the authors and in the end to the users that use their work.

First let me clarify that the login requirement is an option that each author can control on a package by package basis or even file by file basis if necessary. If an author does not want to impose this requirement, he can just tick an option in the package options page, so nobody is required to login to download the package.

Anyway, once a logged user downloads a package, the site takes note of the user identifier. This user tracking feature enabled several interesting possibilities. One is to be able to count more accurately how many users have downloaded a package during all time or just recently.

With this information, the site can build top download charts which are used to encourage authors to contribute more in order to raise in the rankings.

Another useful possibility is to send an e-mail to all users that downloaded a package every time the package files are updated. A similar message may also be sent when the author publishes a new article in a blog that each package has in the PHPClasses site.

The overall effect of having this login requirement option is that more authors have been contributing with more and more useful packages that are shared with everybody.

Still, I have noticed that some users kept complained about this requirement, despite they are already registered in the site in the past. What I learned is that some of those users only return to the site after many months since their last visit.

When they returned the site required them to login again because their session has already expired. The default session timeout was 30 days. Some users complained that they forgot their password and it takes time to receive a new one or to register again.

Therefore, starting today, the default session timeout is 1 year. If you prefer to remain logged for less time, you can also set it to just 1 month, 1 week, 1 day or even just remain logged during the current session until your browser is closed.

Login Form with Session Duration Options

Hopefully, these options will address the complaints of some users that would like to avoid having to login more times than it is really necessary.

Import Packages from Version Control Repositories

Now talking about authors, this year I decided to focus the new developments on features that help promoting better the contributions of the authors that share their work in the site.

Many interesting features are planned but for now I would like to announce one that has been requested many times during all the latest years, which is the ability to submit packages, eventually with many files, without so much submission bureaucracy.

Over time, packages tend to grow not only in number of lines of code, but also in number of files. Uploading each new or updated file using the traditional method of sending one file at a time is a very painful process, especially for packages with many files.

On the other hand, many developers already use version control systems to keep track of the history of changes they have done to their project files, like for instance CVS, SubVersion, GIT, etc.. In many cases those projects are hosted in public sites like SourceForge, Google Code, GitHub, CodePlex, etc..

Now those authors are finally able to import the files of their packages using an automated process that usually only requires not much more than a few clicks.

Currently only CVS import support is available, but soon will follow support for SubVersion, GIT and maybe other version control systems.

Nowadays, CVS is not the most popular version control system. However, the reason why I added support to it first is because I still have many of my oldest packages in CVS repositories.

I will be adding SubVersion and GitHub import support in the next weeks. Meanwhile, if you are an author that want to import your package files from repositories that use these version control systems, please send a message to info at, so you can help participating in the tests.

For now let me just give you an overview of how this works with CVS. It should be similar with other version control systems when they are supported.

First you need to go to the repository management page of the package you want to update. Each package can have one or more repositories from which their files are imported. There is an import link at the bottom of the files listing in the package page. That link leads you the repository management page.

The first thing you need to do is to add the details of your repository. This includes a name that you choose to distinguish each repository, the location of the repository and the name of the module to import.

For CVS, for now this site only supports repositories available via the pserver protocol. The location format should be like:


Add remote repository form

Once the repository is added you need to click on the respective import link to tell the site to retrieve the list of files available in that repository.

Remote repositories listing

The site will show you a list of new or changed files. Since you may already have uploaded your package files in the past, the site tries to figure if the files in the repository are newer or are the same.

Select files to import from repository

For new files you need to use some form buttons to tell what is the original file content type, file role and file description. The site will do its best to guess automatically as much as possible these values for you. If it makes wrong guesses you can still fix the guessed values at will before the actual importing is done.

For changed files, the site just tries to determine the number of the current version of the files previously uploaded to the site. Then it figures the list of changes you have done to the files by looking and the change logs provided by the repository server.

If for some reason you do not want to import some files, you can just change the action option to ignore the file. Ignored files will not be checked in the future.

If all goes well, the site will import the files as you defined and eventually mark them to be notified to the users that have previously downloaded your packages.

Imported files from repository results

In the future, if you do other changes to the files in your repositories, just repeat the process and the site will be able to figure automatically if there are new or changed files to import.

Soon I will announce the SubVersion and GIT support. Then I expect to release a screencast video showing these project import steps in more detail.

More Features to Promote Authors' Work

These new features are also available in the JSClasses site, as both sites share the same code base.

Other features are planned for this year to let authors promote their work better. I will announce them as soon as they are ready for testing. If you are an author and would like to participate in the testing of the planned features, just send a message info at, so you can be called for testing when it is time.

Other Site Improvements and Features

Despite this year I have been focused on improving the site features mainly for authors, other features are being implemented once in a while to address the needs of all types of users besides authors.

If you have suggestions for other new features or you would like to comment on the features that were just announced, feel free to post a comment to this article, so we can evaluate and determine when such features can be implemented or improved.

You need to be a registered user or login to post a comment

Login Immediately with your account on:


3. Congratulations and happy birthday - Josť Filipe Lopes Santos (2011-06-30 05:20)
Congratulations and happy birthday... - 2 replies
Read the whole comment and replies

2. Congratulations - Wojtek Jarzecki (2011-06-26 10:13)
Congratulations for 12 yearas and 1 million users... - 0 replies
Read the whole comment and replies

1. Suggestion for login - Carl Beckelheimer (2011-06-24 20:43)
OpenID would be nice... - 1 reply
Read the whole comment and replies

  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog 12 Years, 1 Million U...   Post a comment Post a comment   See comments See comments (6)   Trackbacks (0)