cari
Rumahpembangunan bahagian belakangtutorial php如何看待大公司将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对网页的渲染呀。
Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Apakah beberapa masalah biasa yang boleh menyebabkan sesi PHP gagal?Apakah beberapa masalah biasa yang boleh menyebabkan sesi PHP gagal?Apr 25, 2025 am 12:16 AM

Sebab -sebab kegagalan phpsession termasuk kesilapan konfigurasi, isu cookie, dan tamat tempoh sesi. 1. Ralat Konfigurasi: Semak dan tetapkan session.save_path yang betul. Masalah 2.Cookie: Pastikan kuki ditetapkan dengan betul. 3.Session Expires: Laraskan Nilai Sesi.GC_MAXLifetime untuk melanjutkan masa sesi.

Bagaimanakah anda menyebarkan isu berkaitan sesi dalam PHP?Bagaimanakah anda menyebarkan isu berkaitan sesi dalam PHP?Apr 25, 2025 am 12:12 AM

Kaedah untuk masalah sesi debug dalam PHP termasuk: 1. Periksa sama ada sesi dimulakan dengan betul; 2. Sahkan penghantaran ID sesi; 3. Semak penyimpanan dan bacaan data sesi; 4. Semak konfigurasi pelayan. Dengan mengeluarkan ID dan data sesi, melihat kandungan fail sesi, dan lain-lain, anda boleh mendiagnosis dan menyelesaikan masalah yang berkaitan dengan sesi.

Apa yang berlaku jika session_start () dipanggil beberapa kali?Apa yang berlaku jika session_start () dipanggil beberapa kali?Apr 25, 2025 am 12:06 AM

Pelbagai panggilan ke session_start () akan menghasilkan mesej amaran dan kemungkinan penggantian data. 1) PHP akan mengeluarkan amaran, menyebabkan sesi telah dimulakan. 2) Ia boleh menyebabkan penggantian data sesi yang tidak dijangka. 3) Gunakan session_status () untuk memeriksa status sesi untuk mengelakkan panggilan berulang.

Bagaimana anda mengkonfigurasi seumur hidup sesi di PHP?Bagaimana anda mengkonfigurasi seumur hidup sesi di PHP?Apr 25, 2025 am 12:05 AM

Mengkonfigurasi kitaran hayat sesi dalam PHP boleh dicapai dengan menetapkan sesi.gc_maxlifetime dan session.cookie_lifetime. 1) session.gc_maxlifetime mengawal masa survival data sesi pelayan, 2) session.cookie_lifetime mengawal kitaran hayat kuki klien. Apabila ditetapkan ke 0, kuki tamat apabila penyemak imbas ditutup.

Apakah kelebihan menggunakan pangkalan data untuk menyimpan sesi?Apakah kelebihan menggunakan pangkalan data untuk menyimpan sesi?Apr 24, 2025 am 12:16 AM

Kelebihan utama menggunakan sesi penyimpanan pangkalan data termasuk kegigihan, skalabilitas, dan keselamatan. 1. Kegigihan: Walaupun pelayan dimulakan semula, data sesi tidak dapat berubah. 2. Skalabiliti: Berkenaan dengan sistem yang diedarkan, memastikan data sesi disegerakkan di antara pelbagai pelayan. 3. Keselamatan: Pangkalan data menyediakan storan yang disulitkan untuk melindungi maklumat sensitif.

Bagaimana anda melaksanakan pengendalian sesi tersuai di PHP?Bagaimana anda melaksanakan pengendalian sesi tersuai di PHP?Apr 24, 2025 am 12:16 AM

Melaksanakan pemprosesan sesi tersuai dalam PHP boleh dilakukan dengan melaksanakan antara muka sessionHandlerInterface. Langkah -langkah khusus termasuk: 1) mewujudkan kelas yang melaksanakan sessionHandlerInterface, seperti CustomSessionHandler; 2) kaedah penulisan semula dalam antara muka (seperti terbuka, rapat, membaca, menulis, memusnahkan, gc) untuk menentukan kitaran hayat dan kaedah penyimpanan data sesi; 3) Daftar pemproses sesi tersuai dalam skrip PHP dan mulakan sesi. Ini membolehkan data disimpan dalam media seperti MySQL dan REDIS untuk meningkatkan prestasi, keselamatan dan skalabiliti.

Apakah ID Sesi?Apakah ID Sesi?Apr 24, 2025 am 12:13 AM

SesionID adalah mekanisme yang digunakan dalam aplikasi web untuk mengesan status sesi pengguna. 1. Ia adalah rentetan yang dijana secara rawak yang digunakan untuk mengekalkan maklumat identiti pengguna semasa pelbagai interaksi antara pengguna dan pelayan. 2. Pelayan menjana dan menghantarnya kepada klien melalui kuki atau parameter URL untuk membantu mengenal pasti dan mengaitkan permintaan ini dalam pelbagai permintaan pengguna. 3. Generasi biasanya menggunakan algoritma rawak untuk memastikan keunikan dan ketidakpastian. 4. Dalam pembangunan sebenar, pangkalan data dalam memori seperti REDIS boleh digunakan untuk menyimpan data sesi untuk meningkatkan prestasi dan keselamatan.

Bagaimanakah anda mengendalikan sesi dalam persekitaran tanpa kerakyatan (mis., API)?Bagaimanakah anda mengendalikan sesi dalam persekitaran tanpa kerakyatan (mis., API)?Apr 24, 2025 am 12:12 AM

Menguruskan sesi dalam persekitaran tanpa kerakyatan seperti API boleh dicapai dengan menggunakan JWT atau cookies. 1. JWT sesuai untuk ketiadaan dan skalabilitas, tetapi ia adalah saiz yang besar ketika datang ke data besar. 2.Cookies lebih tradisional dan mudah dilaksanakan, tetapi mereka perlu dikonfigurasikan dengan berhati -hati untuk memastikan keselamatan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod