» PHP.JS SVN

PHP to Javascript Project: php.js

php.jsThis article is part of the 'Porting PHP to Javascript' Project, which aims to decrease the gap between developing for PHP & Javascript.

A lot of people are familiar with PHP's functions, and though Javascript functions are often quite similar, some functions may be missing or addressed differently. The Javascript implementations should be as compliant with the PHP versions as possible, a good indication is that the PHP function manual could also apply to the Javascript version.

Porting crucial PHP functions to Javascript can be fun & useful. Currently some PHP functions have been added, but readers are encouraged to contribute and improve functions by adding comments. Eventually the goal is to save all the functions in one php.js file and make it publicly available for your coding pleasure.

If you choose to contribute, let me know how you want to be credited in the function's comments. You may also want to subscribe to RSS so you receive updates whenever new functions are posted.

Hello good people. Our little project is going strong and thanks to Felix Geisendörfer there are a couple of new developments that I want to share with you. I'll limit this article to SVN though.

SVN Advantages

Project development has been moved to SVN. This has a couple of advantages because SVN:

  • Saves all versions. We can see who changed what & why. And we can always revert to previous a version of a function.
  • Allows for more developers to contribute to this project without having to leave comments on this site all the time.
  • Becomes lower maintenance for myself.
  • Allows developers to include the PHP.JS repository in their projects. This way their PHP.JS they will always be up to date.

SVN Checkout

To do a checkout of the development trunk to a local directory called phpjs, you might execute the following code

svn co svn://svn.phpjs.org/phpjs/trunk phpjs

SVN Externals

svn:externals are like links to other projects. If your project is in SVN as well, you can very easily include PHP.JS into your project. For example if you'd like to store an up to date version of PHP.JS in a directory called 'libs' then the SVN external property could look like this:

libs/phpjs svn://svn.phpjs.org/phpjs/trunk

If the latest development release is a bit to risky for you, you might want to include a specific release (e.g. 112) like this:

libs/phpjs -r 112 svn://svn.phpjs.org/phpjs/trunk

Tags will be supported later on.

More information about the svn:externals property

SVN Write access

If you would like to help and contribute code to this project, I will manually have to create an account for you. In this phase we're only allowing requests from people who have a compatible philosophy about this project and have already made solid contributions.

If you're interested please leave a comment here or mail your request to: kevin [ a t ] van zonneveld [ d o t ] net

Trac

Trac is a nice web tool to browse SVN source changes, submit bugs & feature requests. For now all of it's features require a login (see above to request one), but we'll probably gradually allow anonymous access to more & more of it's features.

Once it's publicly available I'll announce the URL here.

Can't SVN?

Don't worry, you can still just post a Comment if you have improvements. If it's any good, other people will submit your code to our new repository. Credits will stay intact.

Kay that's it for now, thanks everyone for great contributions and insightful comments. I'll be back soon with more awesome PHP.JS news.


Like this article?

   Then Dzone it!
Or use another bookmark button below to show your support &
help me spread the word.


tags: programming, php, javascript, svn, phpjs, trac
category: Programming - Javascript - PHP equivalents
read: 1,996 times

Add comment

for syntax highlighting

[CODE="Javascript"]
your_code_here();
[/CODE]

Replace "Javascript"
with "php", "text", etc.
code (to make sure you are not a spammer)

Comments

#7. Kevin on 17 April 2008

Kevin@ Philip Peterson: Nice! :)

#6. Philip Peterson on 17 April 2008

Philip PetersonOkay, I've added a few functions to the SVN :)

#5. Kevin on 15 April 2008

Kevin@ Philip Peterson: Neat work man, you've made it almost too easy for me to include the functions! Awesome :)

Please contact me: kevin [ a t ] van zonneveld [ d o t ] net, so I can give you the SVN account.

#4. Philip Peterson on 15 April 2008

Philip PetersonWheee, more functions!

function round ( val, precision ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // *     example 1: round(1241757, -3);
    // *     returns 1: 1242000
    // *     example 2: round(3.6);
    // *     returns 2: 4
 
 
    var precision = (round.arguments.length > 1) ? round.arguments[1] : 0;
    return Math.round(val * Math.pow(10, precision))/Math.pow(10, precision);
}
 
function sizeof ( mixed_var, mode ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // -    depends on: count
 
    return count( mixed_var, mode );
}

#3. Philip Peterson on 15 April 2008

Philip PetersonHere are my new functions by the way:

function urldecode( str ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // -    depends on: str_replace
    // *     example 1: urlencode('Kevin+van+Zonneveld%21');
    // *     returns 1: 'Kevin van Zonneveld!'
                                     
    return unescape(str_replace("+", "%20", str));
}
function urlencode( str ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // -    depends on: str_replace
    // *     example 1: urlencode('Kevin van Zonneveld!');
    // *     returns 1: 'Kevin+van+Zonneveld%21'
                                     
    return str_replace("%20", "+", escape(str));
}

#2. Philip [Peterson] on 15 April 2008

Philip [Peterson]Hey, do you think you could possibly add me an SVN account? I'm working on two new functions as of now, but I can just post them as comments if I don't meet your reqs.

Thanks,
Philip

#1. Chad on 13 April 2008

ChadThis should prove to be very useful. Thanks for all the efforts.