对我来说,本来大部分事情都能用Python去做的,但是就因为流行度的问题,经过几番考虑,又选择了另外再学习一门动态语言——PHP。
下载下来官方打包的PHP的绿色版后吓了一跳
原来官方打包的东西里就附带了这么多常用的现成的库了,本来以为还要像Python一样到处找第三方库呢,哈哈。
windows下好像没有php-fpm,生产环境部署的时候可能要折腾那么一下子了。启动方式如下:
D:\php>php-cgi.exe -b 127.0.0.1:9000
配合强大的nginx,php就可以开始工作了,附带nginx.conf配置如下:
worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; charset utf-8; location /static { root E:\\projects\\order-manager-system\\src\\; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME E:\\projects\\order-manager-system\\src\\$fastcgi_script_name; include fastcgi_params; } }}
经过一段时间的学习,发现php在做web上不是盖的,用php本身的语法来做就很方便了,就是<?php有点打起来麻烦。
稍微研究了下后发现模版的继承可以这么实现,唯一令我担心的是这些变量如何避免require它的外部脚本带来的污染,不知道哪位大大知道怎么保护模版内的变量使其局部化呢?:
/******************main.php*********************/<?php echo $title ?> /****************index.php***********************/
然后就是数据库的长连接,本来以为有哪里对于php的fastcgi模式来说是请求间共享的,这样就可以保存数据库连接而不被销毁了,但貌似没发现,$_GLOBAL里面的好像在请求间也不是共享的。
后来才知道真是绕远路了,pg_pconnect就可以实现。
用php写了一些测试功能后发现它在语言本身并没有落后Pyhon太多,功能做起来都很方便,代码简单清晰,对于web开发大量的功能都内置了。主要是做通讯服务的时候应该不那么给力。
暂时没感觉到灵活性的瓶颈,貌似现在还不需要框架,URL路由部分则是“无耻”地交给了更擅长它的nginx去实现了。