[ANN] node-phpjs v0.0.1, a port of php.js for Node.js

193 views
Skip to first unread message

Alan Hoffmeister

unread,
Jun 1, 2012, 9:17:43 AM6/1/12
to nodejs
Hello there!

I had just ported php.js (http://phpjs.org) for Node.js.
My motivation was to available new functions that could help programmers to accomplish simple tasks and yup, I came from PHP and I was really missing some basic functions :)

A list of functions is available at http://phpjs.org, install guide and usage, here: https://github.com/cranic/node-phpjs.

Have an idea? Shout it out! :)

--
Att,
Alan Hoffmeister

Arnout Kazemier

unread,
Jun 1, 2012, 9:21:33 AM6/1/12
to nod...@googlegroups.com
the only idea I have is to get some torches and burn your repository down because PHPJS has the most horrible un optimized piece of javascript ever created.

you are only limiting your ability to learn the language this way. If you want PHP, write PHP.. if want learn js, write JS not phpJS.

Just out of curiosity, what kind of "basic" functions where you missing?
--
Job Board: http://jobs.nodejs.org/
Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nod...@googlegroups.com
To unsubscribe from this group, send email to
nodejs+un...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Alan Hoffmeister

unread,
Jun 1, 2012, 10:02:41 AM6/1/12
to nod...@googlegroups.com
That's ok, I had already separated some sticks and gasoline to help
people to burn me down because of this package...
Why everyone get scared when they read PHP in the name of the package?
I should have name it node-bunch-of-functions :)
There's no PHP inside this package, just similarly named functions.

Unoptimized? Of course it is.. Did you read somewhere in my e-mail
"production ready"?

Come on Arnout, you know that I'm not trying to make people write
javascript in the PHP way, for example, if you want to captalize the
first letter of a sentence you can write a function:

function ucfirst(str) {
return str.charAt(0).toUpperCase() + str.substr(1);
}

Or you can require some package that already have this function and
use it, but not you, of course, because that damn function is named
exactly as a well known PHP function, so let's burn that repo down!

Mind note: *do not* use PHP inside the name of the packages.

--
Att,
Alan Hoffmeister


2012/6/1 Arnout Kazemier <in...@3rd-eden.com>

Oleg Efimov (Sannis)

unread,
Jun 1, 2012, 10:11:22 AM6/1/12
to nod...@googlegroups.com
>  I should have name it node-bunch-of-functions :)  
You exactly right! And really, in this case you can skip some phpjs fucntions from there,
especially aliases like explode/implode and, IMO, unefective bcmath port.
There is node-bigint for node.js that, i think, will better fit in node.js project.

Other functions, that are usefull, like ucfirst, is a good thing to combine in some node.js module :)

пятница, 1 июня 2012 г., 18:02:41 UTC+4 пользователь Alan Hoffmeister написал:
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to nod...@googlegroups.com
> To unsubscribe from this group, send email to

Seiji Sam Lee

unread,
Jun 1, 2012, 1:26:10 PM6/1/12
to nod...@googlegroups.com
Due the great expectation around node.js, libs and functions grow up
without control.

Nowadays we have a lot of "requires" and we need to memorize a lot of
names (fs, path, vm, ...); with time, we'll spend more and more time
reading documentation :-(

My proposal is incorporate the mechanism of "register" the module, for
example, phpjs library could register the function "isset" into "utils",
and "abs" function into "math"

So we could have libraries well sorted !!


El 01/06/12 15:17, Alan Hoffmeister escribi�:
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to nod...@googlegroups.com
> To unsubscribe from this group, send email to
> nodejs+un...@googlegroups.com

Angel Java Lopez

unread,
Jun 1, 2012, 2:49:58 PM6/1/12
to nod...@googlegroups.com
Interesting... but....

A key property of a require is the "isolation" of its product, something like namespaces in other languages/technologies.

So myrequire.abs is clearly different from yourrequire.abs

Paraphrasing David Hilbert (about Cantor)
"No one shall expel us from the paradise that require(...) has created for us"
On Fri, Jun 1, 2012 at 2:26 PM, Seiji Sam Lee <seiji...@gmail.com> wrote:
Due the great expectation around node.js, libs and functions grow up without control.

Nowadays we have a lot of "requires" and we need to memorize a lot of names (fs, path, vm, ...); with time, we'll spend more and more time reading documentation :-(

My proposal is incorporate the mechanism of "register" the module, for example, phpjs library could register the function "isset" into "utils", and "abs" function into "math"

So we could have libraries well sorted !!


El 01/06/12 15:17, Alan Hoffmeister escribió:
Hello there!

I had just ported php.js (http://phpjs.org) for Node.js.
My motivation was to available new functions that could help programmers to accomplish simple tasks and yup, I came from PHP and I was really missing some basic functions :)

A list of functions is available at http://phpjs.org, install guide and usage, here: https://github.com/cranic/node-phpjs.

Have an idea? Shout it out! :)

--
Att,
Alan Hoffmeister

--
Job Board: http://jobs.nodejs.org/
Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nod...@googlegroups.com
To unsubscribe from this group, send email to

For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en
--
Job Board: http://jobs.nodejs.org/
Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nod...@googlegroups.com
To unsubscribe from this group, send email to

Alan Hoffmeister

unread,
Jun 1, 2012, 3:31:16 PM6/1/12
to nod...@googlegroups.com
+1 to the idea.

Btw, don't mention PHP or you will get in troubles here...

--
Att,
Alan Hoffmeister


2012/6/1 Angel Java Lopez <ajlop...@gmail.com>:
>>> nodejs+un...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>
>>
>> --
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines:
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> You received this message because you are subscribed to the Google
>> Groups "nodejs" group.
>> To post to this group, send email to nod...@googlegroups.com
>> To unsubscribe from this group, send email to
>> nodejs+un...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/nodejs?hl=en?hl=en
>
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to nod...@googlegroups.com
> To unsubscribe from this group, send email to
> nodejs+un...@googlegroups.com

Angel Java Lopez

unread,
Jun 1, 2012, 3:32:50 PM6/1/12
to nod...@googlegroups.com
neither to add some sync function at core ;-)

Joshua Holbrook

unread,
Jun 1, 2012, 3:39:32 PM6/1/12
to nod...@googlegroups.com
-1 as I like my modules exactly as they are.

--Josh
Joshua Holbrook
Engineer
Nodejitsu Inc.
jo...@nodejitsu.com

Martin Wawrusch

unread,
Jun 1, 2012, 3:42:42 PM6/1/12
to nod...@googlegroups.com
-1 as well. Thank you Josh.

Alan Gutierrez

unread,
Jun 1, 2012, 3:57:42 PM6/1/12
to nod...@googlegroups.com
On Fri, Jun 01, 2012 at 12:42:42PM -0700, Martin Wawrusch wrote:
> > >> > On Fri, Jun 1, 2012 at 2:26 PM, Seiji Sam Lee <seiji...@gmail.com>
> > >> > wrote:
> > >> >>
> > >> >> Due the great expectation around node.js, libs and functions grow up
> > >> >> without control.
> > >> >>
> > >> >> Nowadays we have a lot of "requires" and we need to memorize a lot of
> > >> >> names (fs, path, vm, ...); with time, we'll spend more and more time
> > >> >> reading
> > >> >> documentation :-(
> > >> >>
> > >> >> My proposal is incorporate the mechanism of "register" the module,
> > for
> > >> >> example, phpjs library could register the function "isset" into
> > >> >> "utils", and
> > >> >> "abs" function into "math"
> > >> >>
> On Fri, Jun 1, 2012 at 12:39 PM, Joshua Holbrook <josh.h...@gmail.com>wrote:
>
> > -1 as I like my modules exactly as they are.
> >
> > --Josh
>
> -1 as well. Thank you Josh.

-1

Perl has this, a default export. You'll need a switch to say that you don't want
the default exports. Then you're going to need a way to remap the default
exports. Pretty soon you're going to have Perl.

Actually, I am you're more likely to devolve into PHP, a global namespace full
of suprises.

--
Alan Gutierrez - @bigeasy

Isaac Schlueter

unread,
Jun 1, 2012, 3:59:28 PM6/1/12
to nod...@googlegroups.com
No, we're not going to do this. The module system is finished. It
won't be changing except for critical bugs.

Jimb Esser

unread,
Jun 1, 2012, 6:19:21 PM6/1/12
to nodejs
Uh, doesn't it already work this way?
mymodule.js:
Math.abs = function() ...
require('util').isset = function() ...

That being said, don't do this, modules/namespaces are there for very
good reason.

On Jun 1, 12:59 pm, Isaac Schlueter <i...@izs.me> wrote:
> No, we're not going to do this.  The module system is finished.  It
> won't be changing except for critical bugs.
>
>
>
>
>
>
>
> On Fri, Jun 1, 2012 at 12:57 PM, Alan Gutierrez <a...@prettyrobots.com> wrote:
> > On Fri, Jun 01, 2012 at 12:42:42PM -0700, Martin Wawrusch wrote:
> >> > >> > On Fri, Jun 1, 2012 at 2:26 PM, Seiji Sam Lee <seijisam...@gmail.com>
> >> > >> > wrote:
>
> >> > >> >> Due the great expectation around node.js, libs and functions grow up
> >> > >> >> without control.
>
> >> > >> >> Nowadays we have a lot of "requires" and we need to memorize a lot of
> >> > >> >> names (fs, path, vm, ...); with time, we'll spend more and more time
> >> > >> >> reading
> >> > >> >> documentation :-(
>
> >> > >> >> My proposal is incorporate the mechanism of "register" the module,
> >> > for
> >> > >> >> example, phpjs library could register the function "isset" into
> >> > >> >> "utils", and
> >> > >> >> "abs" function into "math"
>

Ted Young

unread,
Jun 2, 2012, 6:31:49 AM6/2/12
to nod...@googlegroups.com
Even though some of the functions are surely useful, it would be better if they weren't all in the same module.  Having date, math, and string functions all piled in together is a bad pattern, it would be better to package them up in separate modules (and remove functions that duplicate node standard lib).  Also, fyi my single brush with php.js was to grab strtotime, only to discover it was a poor/buggy implementation, so you may not want to trust the source material.

Seiji Sam Lee

unread,
Jun 8, 2012, 11:32:45 AM6/8/12
to nod...@googlegroups.com
jaja, ok, by the way I mented phpjs ;-)

Yes, isolation is and aim to achieve, but it could sort out the big
quantity of functions that nodejs is coming to get.

Really I have in my mind the way that Java does. That's right, it use
namespaces, and we do so!! modules are like namespaces.

Grettings: Seiji

El 01/06/12 21:31, Alan Hoffmeister escribi�:
> +1 to the idea.
>
> Btw, don't mention PHP or you will get in troubles here...
>
> --
> Att,
> Alan Hoffmeister
>
>
> 2012/6/1 Angel Java Lopez<ajlop...@gmail.com>:
>> Interesting... but....
>>
>> A key property of a require is the "isolation" of its product, something
>> like namespaces in other languages/technologies.
>>
>> So myrequire.abs is clearly different from yourrequire.abs
>>
>> Paraphrasing David Hilbert (about Cantor)
>> "No one shall expel us from the paradise that require(...) has created for
>> us"
>> http://www.brainyquote.com/quotes/authors/d/david_hilbert.html
>>
>>
>> On Fri, Jun 1, 2012 at 2:26 PM, Seiji Sam Lee<seiji...@gmail.com> wrote:
>>> Due the great expectation around node.js, libs and functions grow up
>>> without control.
>>>
>>> Nowadays we have a lot of "requires" and we need to memorize a lot of
>>> names (fs, path, vm, ...); with time, we'll spend more and more time reading
>>> documentation :-(
>>>
>>> My proposal is incorporate the mechanism of "register" the module, for
>>> example, phpjs library could register the function "isset" into "utils", and
>>> "abs" function into "math"
>>>
>>> So we could have libraries well sorted !!
>>>
>>>
>>> El 01/06/12 15:17, Alan Hoffmeister escribi�:

Seiji Sam Lee

unread,
Jun 8, 2012, 11:35:54 AM6/8/12
to nod...@googlegroups.com
El 01/06/12 21:57, Alan Gutierrez escribi�:
A good idea is a good idea ;-) If it works in perl .....

But I have in mind java, not php.


Seiji Sam Lee

unread,
Jun 8, 2012, 11:38:02 AM6/8/12
to nod...@googlegroups.com
El 01/06/12 21:59, Isaac Schlueter escribi�:
But is possible to develop a module called "namespace" to allow
namespaces and a hierarchy of them. It could be a parallel developing.

Mikeal Rogers

unread,
Jun 8, 2012, 4:30:15 PM6/8/12
to nod...@googlegroups.com
A similar idea was considered by Ryan a few years ago. I think it looked like this

import('modulename')

All the exports are dumped by name in to the scope. There was also some copy-on-write isolate stuff in there if i remember correctly.

It was scrapped as a bad idea for a lot of the reasons people have already mentioned. Also, the `module.exports = function () {}` pattern has become pervasive and would be really hacky to get right with this kind of feature.

Modules are done. node.js is at a stage now where certain new ideas aren't welcome like they were a few years ago. That's just how projects evolve, some things solidify and in order to make progress elsewhere we have to reject a lot of alternative ideas.

-Mikeal


On Jun 8, 2012, at June 8, 20128:38 AM, Seiji Sam Lee wrote:

> El 01/06/12 21:59, Isaac Schlueter escribió:
Reply all
Reply to author
Forward
0 new messages