如何看待大公司将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 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。
