如何看待大公司将PHP作为前端语言?
同学去腾讯写PHP,但是实际上是在做一些前端的工作。
PHP发展到现在,也有了面向对象的概念,也出现了laravel这样的框架,有了完整的mvc模式,为什么依然会被认为是前端语言?和Java相比只是效率和可靠程度的差异吗?
回复内容:
一开始邀请我回答这个问题的时候,我是拒绝的。一方面,PHP在一个业务系统里如何定位,要看你这个系统的实际情况,目前我这后端还是JS呢。对于网络游戏来说,C加加还是前端呢。
另一方面,前后端的定义,发展到现在已经很不一样了。从前在网线两头分开前后端的做法已经不适合了。现在我们更倾向把路由处理、request/response 这些都算作前端,有点类似JAVA里面的action。从service开始,到DAO,就可以算是概念上的后端了。
那么问题来了,PHP到底算什么呢?
那就是看你用PHP来做什么了。
谢谢看到这,其实上面的都不是我想说的。
DUANG!
其实吧,一个有点规模的业务系统,会逐渐拆分为一个个逻辑单子化的小系统,这些子系统各自分担一些事情,有些是PHP,有些是JAVA,有些是C,Python,多和谐多美丽。有的在招呼客人,有的在端菜,有的在后厨。噗~
最后,PHP是世界上最好的语言,第二是JS,第三不知道,第四阿森纳。 PHP也分为面向前端的PHP和面向后端的PHP。
举个不太正确但很形象的例子:现在大多应用都是前后端分离,业务逻辑与数据存储的分离。面向前端的PHP要做的就是是前后端的分离,面向后端的PHP要做的就是业务逻辑和数据数据存储部分。
面向前端的PHPer除了需要熟练掌握PHP基础语法,类库,框架和对数据库的基本操作,还需要需要熟悉DIV+CSS,熟悉JS。只有熟悉了前端的开发,才能更好的进行模板的渲染,更好的做到前后的分离,以及分离后前后端数据的交互。
反过来,前端程序员最好要懂一点后端,才能更好的进行前端开发。前端做的不仅仅是一个界面,还有对页面所收集的数据的初步处理。比如表单中的用户输入,至少需要格式处理然后才post或get给后端。再举个极端的例子,如果前端程序员完全不懂后端,甚至连中的name属性有什么用的都不清楚的话,那怎么能很好的做到前后端数据分离呢?
面向后端的PHPer则肯定得掌握环境的搭建,linux的基本使用,简单shell的编写,扩展的编写,并熟悉数据库,对数据库的设计和优化也是必须的。更深入就是对php源码和mysql源码的研究。
在实际运用中,一方面,一个网站UI的变动是相当频繁的,如果是基于传统的java开发方案,jsp tag lib,freemaker, velocity,这很难让前端去修改去调试。另一方面,由于和java相比,PHP在执行效率和性能上基本处于弱势。所以很多大型网站后台都不使单独用PHP来处理业务,而是采用PHP+JAVA的架构。特别是对于有复杂的用户交互及高并发及后端还有复杂的业务的网站来说,如电商类网站,前端使用PHP,可以做到快速开发,部署不用重启,同时nginx + fastcgi + php的组合也能应对基本的高并发问题。后端的复杂业务处理(如订单处理,购物车,库存相关的)使用java来做则再合适不过了。于是,面向后端的PHP的任务,在很多大型网站中基本就交给java去做了。
所以这么来看,一些大的公司里面,PHPer去做前端的任务,一方面是公司网站架构就是前端使用PHP,对于一些“前端工程师”做的事情,让PHPer来做,那也是很正常的;另一方面,可能是PHPer功力还不够深厚,做不了面向后端的PHP。 首先,部分赞同@蒋航 的回答。
其次,更清晰地讲 ——
完全的前后端分离 其实不用 PHP 参与前端,只需它提供基于 HTTP 或 Web Socket 的数据接口即可 —— 前端自主控制 用户级的业务逻辑,加载 HTML、CSS、JS、字体、图片等静态资源后,与后端只有数据交换(JSON、XML 或自定义数据结构)。这是 SPA(单页应用)常用的模式,借鉴 原生网络客户端的架构。
现在大型网站如有 PHP 重新参与前端事务,主要因为性能考量 —— 减少网络连接数的同时,保障内容很多的网页在浏览器中的渲染效率~ 他们通常用后端语言生成 包含网页首屏内容的 HTML 代码、非首屏内容的 HTML 片段,首屏的渲染基本无异于传统 Web,后续内容会以纯文本的形式缓存在隐藏 DOM 中按需加载~
Facebook 的 Big Pipe 和 阿里的 Big Render 是上述架构思想的较好实践,但后者的后端语言是 Java。据我们社团部长在腾讯服务端部门的实习反馈,鹅厂的 PHP 用在各地镜像服务器与前端程序直接交互,而核心的业务逻辑、数据持久化则用 C++ 自主开发了 Hammer 架构来支持。
所以,除了不同后端语言/技术各自特点会左右一家公司最初的选择 —— 用怎样的前后端架构并不注定由 PHP 去和前端配合完成,J2EE、M$.Net、Node.JS、Google Go 都可以去做配合前端的事~
——————————————————————
个人赞同“前后端工程师都要了解对方的技术原理”,但不喜欢 PHPer 被夹在中间 —— 既不会掌控后端架构,又搞不出真正的前端工程,在哪端都是写比较一次性的“业务代码”……
前几天面试了一个应聘“前端工程师”的应届生,他在之前实习、转正的公司“用 JSP 写前端页面”,其职位名曰“前端开发工程师”,但是 —— 他说最近一个自己包办的私人 PHP 网站项目 最有收获的一点是“搞清了跨域问题”,可问了几句才发现他混淆了“iframe 跨页与跨域”,因为他都不能准确描述 域名与跨域的定义……
我在此不是讽刺别的程序猿,而是觉得中国计算机教育让很多程序猿一直在一些误区中工作着,让自己和用户都蛋疼着……
所以我的建议是 —— 保持对各种技术领域的好奇与了解,并在一定时期内专注于一个喜欢的领域~ 一切都只是”增删改查“
何必纠结
欢迎关注我的 initphp 让你的代码更简单.... 如果java 和php 两个语言混合开发 java是要负责数据,业务逻辑方面 PHP要做的应该是数据的调用,在这里应该是这个前端, PHP算前端,那HTML不是哭晕在厕所? 另外,一般是把PHP与JSP的概念搞混了。 只要挣工资,C++也可以写前端。。 PHP貌似没有人拿来在浏览器中运行吧。 因为PHP是最好的语言。
补充PHP是做前端语言的么?我的理解前端是HTML+CSS+Javascript对网页的渲染呀。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

Web开发设计是一个充满潜力的职业领域。然而,这个行业也面临着诸多挑战。随着越来越多的企业和品牌转向网络市场,Web开发者有机会展示他们的技能并在职业生涯中取得成功。然而,随着对Web开发需求的持续增长,开发人员的数量也在增加,导致竞争日益激烈。但令人振奋的是,如果你具备天赋和意愿,你总能找到新方法来创造独特的设计和创意。作为一名Web开发人员,你可能需要不断寻找新的工具和资源。这些新工具和资源不仅能让你的工作更加便捷,还能提升工作质量,从而帮助你赢得更多的业务和客户。Web开发的趋势不断变化,

phpMyAdmin通过Web界面简化MySQL数据库管理。1)创建数据库和表:使用图形界面轻松操作。2)执行复杂查询:如JOIN查询,通过SQL编辑器实现。3)优化和最佳实践:包括SQL查询优化、索引管理和数据备份。

到ImprovephPapplicationspeed,关注台词:1)启用opcodeCachingwithapCutoredUcescriptexecutiontime.2)实现databasequerycachingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandredececonnection.4 limitsclection.4.4

使用依赖注入(DI)的原因是它促进了代码的松耦合、可测试性和可维护性。1)使用构造函数注入依赖,2)避免使用服务定位器,3)利用依赖注入容器管理依赖,4)通过注入依赖提高测试性,5)避免过度注入依赖,6)考虑DI对性能的影响。

你应该下载并升级到最新的Laravel版本,因为它提供了增强的EloquentORM功能和新的路由特性,这些更新可以提高应用程序的效率和安全性。要升级,请按照以下步骤:1.备份当前应用程序,2.更新composer.json文件至最新版本,3.运行更新命令。虽然可能会遇到一些常见问题,如废弃函数和包兼容性,但通过参考文档和社区支持,这些问题都可以解决。

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

PHP性能优化可以通过以下步骤实现:1)在脚本顶部使用require_once或include_once减少文件加载次数;2)使用预处理语句和批处理减少数据库查询次数;3)配置OPcache进行opcode缓存;4)启用并配置PHP-FPM优化进程管理;5)使用CDN分发静态资源;6)使用Xdebug或Blackfire进行代码性能分析;7)选择高效的数据结构如数组;8)编写模块化代码以优化执行。
