Contents
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.
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.
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 phpclasses.org, 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:
:pserver:user:password@host:/path/to/repository
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.
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.
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.
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 phpclasses.org, 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.