phpnodejs
⑴ 写后端 Python,nodejs和php哪个更好一些
Node.js相优于Python的地方:快:这个快有两方面,第一是V8引擎快,第二是异步执行,Node.js功能上是一个基于V8引擎的异步网络和IOLibrary,和Python的Twisted很像,不同的是Node.js的eventloop是很底层的深入在语言中的,可以想象成整个文件在执行的时候就在一个很大的eventloop里;npm:npm可以说是用起来最顺手的packagemanagement了,npm作为Node.js的官方packagemanagement,汇集了整个社区最集中的资源;不像Python经历过easy_install和pip,还有2to3的问题;Windows支持:Node.js有微软的加持,Windows基本被视为一等公民来支持,libuv已经可以很好的做到统一跨平台的API;而Python虽然也对Windows有官方的支持,但是总感觉是二等公民,时不时出些问题。Python优于Node.js的地方:语言:就单纯从语言的角度来说,Python写起来要比Javascript舒服很多;Javascript设计本身有许多缺陷,毕竟当时设计的时候只是作为在浏览器中做一些简单任务的script,所以代码一旦庞大,维护还是有困难(不过Node.js的mole很大的改善了这个问题),不过用Coffeescript可以很大的改善Javascript,几乎可以和Python等同;成熟:成熟包括语言本身已经成熟,还有Framework和ecosystem也很庞大。Node.js的绝大多数framework都很新,有的API一直在变,有的感觉已经不在维护,总之没有一个像Django那种百足之虫感觉的framework。Python的主流ORMSQLalchemy也很成熟。Python和Node.js很难分高下的地方:异步Style:Node.js的异步Style是CPS,也就是层层callback,基于event,和浏览器中的Javascript很像。CPS好处是让熟悉浏览器Javascript的人能很快上手,学习难度也不大。缺点是逻辑一复杂,就变得很难维护,基本上需要通过async.js这种library,或者用promise。Python的异步除了和Node.js很像的Twisted之外,也有基于coroutine的gevent,coroutine让异步代码维护起来更容易,不过学习曲线陡;应用场景:如果是一个CRUD的app,那么想都不想直接是Python,Node.js本身不擅长CRUD的app(绝大多数Node.js都是直接裸在外面的,而不是有一个Nginx在前面,否则websocket就不能用了,不过新版nginx开始支持websocket),代码又不好维护,而Python的WSGI很适合,成熟的stack也有很多。如果更偏向于real-time,比如一个chatroom,那么Node.js实现更容易。这两个应用场景还是有差别的。
⑵ 如何通过nodejs来实现php的前后端分离
简单一点理解的话就是php整体制作后台和API通讯这块,不使用它来制作显示层,显示层完全由nodejs来做,通过php的API来获取和操作相关数据流。
⑶ 如何利用php执行nodejs文件
一,安装DNode,
1, for nodejs, 执行
$ sudo npm install dnode
2, for php, 利用composer来安装DNode php
执行下列语句下载composer
$ wget http://getcomposer.org/composer.phar
创建一个文件composer.json,然后填入如下语句,
{
"require": {
"dnode/dnode": "0.2.0"
}
}
执行如下语句安装,
$ sudo php composer.phar install
二,利用nodejs创建简单server程序, server.js
var dnode = require('dnode');
var server = dnode({
zing: function (n, cb) { cb(n * 100) }
});
server.listen(7070);
三,利用php创建客户端程序client.php, 其中需要引用刚才安装的dnode文件夹里面的文件autoload.php
<?php
// Connect to DNode server running in port 7070 and call
// Zing with argument 33
require 'lib/vendor/autoload.php';
// This is the class we're exposing to DNode
class Temp
{
// Compute the client's temperature and stuff that value into the callback
public function temperature($cb)
{
}
}
$loop = new React\EventLoop\StreamSelectLoop();
$dnode = new DNode\DNode($loop, new Temp());
$dnode->connect(7070, function($remote, $connection) {
// Remote is a proxy object that provides us all methods
// from the server
$remote->zing(33, function($n) use ($connection) {
echo "n = {$n}\n";
// Once we have the result we can close the connection
$connection->end();
});
});
$loop->run();
?>
⑷ PHP和Nodejs能配合使用吗
可以,如何实现不是很清楚,具体案例为drupal的nodejs模块,以及若干依赖于此nodejs模块的其他模块,比如一些即时聊天的模块就可以选择性的依赖于nodejs模块
⑸ 有js基础和简单的php基础,但是学习nodejs还是很吃力
不知道你有的js基础到底有多少:对象、方法、作用域、回调、链式调用、闭包、原型链这些概念到底理解的怎么样?这些没有深入的理解,可能在继续深入学习会感觉吃力,那么有针对性的先把这些东西搞清楚。另外,一定要始终记住,node.js做的是服务器端开发,不要一拿js写东西心中就装着个形象巨大的浏览器,这方面也可能造成一写理解上的困扰(最直接的,dom操作可能很直接就定位1个元素然后进行操作了;但是服务器端如果要封装的好的话,可能是A类处理完了交给B类,B类继续处理然后交个C类,最后是D类负责做最后的输出。当然前端也可以封装的很复杂,特别是event处理方面,只是举一个简单的例子,勿喷 ;))
PHP的基础不能说没用,万事万物的原理都是触类旁通的,而且同是做后端开发的。但是要达到触类旁通、举一反三还是需要比较高的境界的,所以目前就你的情况来说,PHP的基础对学习node.js来说可能用处不大,还有可能造成一些混淆,所以遇到问题不如不要去想PHP里面是怎么怎么样的了... 当然,如果你PHP已经掌握的很好了,那就是另外一回事了
应该怎么学习?这也是一个被说了无数次的话题,首先我觉得最有效的无非是“项目驱动式”学习,你给自己设定一个简单的项目(一定要简单点,不然第二天说不定就把自己吓跑了),然后根据功能一点点去开发,遇到具体问题再查相关的资料或者到这里提问题。这样更具有实际操作性,你目前这个阶段的话,光看书真的意义不大。
其次,github上有很多node.js相关的开源项目,阅读别人的代码,好的代码(从项目被star和fork的数量来判定就可以了),一定要坚持让自己看懂,对自己的学习和提高也是非常有帮助的。
祝早有所成!
⑹ node.js与php相比有哪些优缺点未来会替代php成为最好的语言吗
您好,写了两年多的PHP,当时使用的框架是laravel
后来我放弃了PHP,转战Nodejs,然后就是各种爽,先不说node性能远高于PHP,node的各种npm包和模块远比composer多和方便,模块化的开发和维护轻松了很多;
PHP只是为web服务器编程而生,而nodejs可以做的事情可远不止这点,有至少最明显的时又很多开发工具和cli是用node写的,grunt,gulp,yomen,bower,cordova等等一大堆,有人还把nodejs应用到了硬件项目中,开发桌面软件?咋们有node-webkit还是跨平台的。
原来Node.js是一门语言,PHP是世界上最好的语言。
++这么多人骂了这么多年也没被取代,
VB也没有我们想象的那样消亡,反而每次都在前十,
不用担心PHP会死,PHP不死也不会影响NodeJS火爆。
⑺ node.js php差别大吗
1.PHP的优势在于:老牌开发语言,资料又多又全,使用PHP的企业也比较多,无论是自学还是找人问都很方便;常用的几个PHP框架文档也好的不行,包括wordpress也是用的PHP;学会之后,找个免费的虚拟主机,做个一个个人站,简直不要太方便。
2.Nodejs的优势在于:社区非常活跃,语法就是JS,最常用的后端框架express非常简单好用,文档清晰有中文翻译。同时Nodejs可以做很多前端工程化的工具,异步也是一个很优秀的特点(仁者见仁吧)
3.总的来说:
如果公司在应用某一门后端语言,不妨就学这一门,遇到不懂的地方,还可以在身边找到同事咨询。从自己长远的职业角度考虑,建议学Nodejs,毕竟除了用来做后端,还能提高日常开发效率。
⑻ php的性能要比node.js高很多吗
在服务器后端,我更喜欢用php,但是nodejs某些方面很好很强大他们应用的场景各有所长,没有最好的语言,php依然有它的优势,特别是在中小型企业中
⑼ php 和nodejs 的各自优势有哪些,如果无基础开始,要学那个好
作者:MiseryLee
链接:http://www.hu.com/question/35117771/answer/61377174
来源:知乎
着作权归作者所有,转载请联系作者获得授权。
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。
以上这句话摘于网络。PHP的语法是公认的比较独特的语法了,集百家之长,再加以创新。学习过OO的同学们一定会对此倍感亲切。不过对于我并不长的PHP编码经历,让我无法忍受的一点就是PHP的变量名必须在前面加一个$符号了。
至于Nodejs,Node本身就是Javascript语言,对于Web前端脚本开发者来说,学习Node简直是如鱼得水。Javascript作为脚本语言,在代码的编写上有极大的自由(画外音:PHP也是脚本语言好么!),但是Javascript的异步编码风格确实是让以学习同步编码风格的语言入门的同学Hold不住。
在语法方面,我更倾向于Nodejs(毕竟人家是写Javascript出身的233333)。PHP对于臣妾来说写的实在太累啦~
2.效率
这一点其实没有必要比较了,
Web语言效率问题,PHP还是Nodejs
看一下这里一楼的大大说的。
Nodejs凭借高效的V8引擎和它非阻塞异步I/O的特性,在其执行效率上远远超过了其他的脚本语言。
Node.js比PHP快14倍!
这里这位大大在效率方面分析的更加到位。当然我并不是在追捧Nodejs,就像这位大大说的
这不是简单语言细节之争,而是语言框架之争。将Node.JS这种异步机制从Javasctipt搬移到其他语言PHP .NET Java其实都会取得比原来堵塞方式有数十倍提高。
3.使用场景
毋庸置疑,这两种语言都是为Web开发而生。PHP多样化的内置方法和库,让Web开发变得极其的方便和高效,成熟的语言框架也给开发者提供了足够高的健壮性和稳定性。而Nodejs以其强大的特性吸引了大量的开发者为其贡献扩展库,Nodejs项目虽然还很年轻,但是已经聚集了大量的开发资源。
4.小结
毕竟对PHP了解的较少,所以以上言论中难免有点偏向于Nodejs,但是PHP发展多年屹立不倒肯定是有它的道理的,网络还用的PHP呢。
至于Nodejs,作为一门新兴(并不新啊,Javascript可比PHP老多了)语言来讲,它独特的设计特性足够吸引开发者向它看了。
最终回到题主的问题,不知道题主说的没有基础是指完全没有编程基础还是没有服务器开发基础?
如果完全没有编程基础的话,我建议题主还是先去学习C语言,先入了这一行,再选工具吧~
如果有编程基础的话,如果之前是学习OO的,建议先从PHP入手,毕竟更容易过渡,并且网络上对于PHP的资料要比Nodejs多得多。
如果之前学习过Javascript,我还是建议先从PHP入手,就像上面说的,先入了这一行,再选工具。服务器开发也算一个小行了,如果对服务器开发不了解,对网络机制不了解的话,先从PHP着手,把这些相关知识补充起来。
如果实在是被Nodejs的优势吸引住了的话,我建议先好好学习Javascript高级编程,深入理解一下异原型链和回调机制,这会对入手Nodejs有极大的帮助。
如对您有帮助,望采纳,谢谢