目錄
回复讨论(解决方案)
首頁 後端開發 php教程 从C++转过来的,问问PHP初始化在哪儿?就是程序第一次启动需要读入配置数据那种?

从C++转过来的,问问PHP初始化在哪儿?就是程序第一次启动需要读入配置数据那种?

Jun 23, 2016 pm 01:51 PM
配置

比如在C++里有个main函数,可以做一些启动初始化的事情,读入配置表什么的,只要做一次
现在用PHP写服务端,这个类似的功能我需要加在哪儿呢?谢谢诶!


回复讨论(解决方案)

直接放在程序里!

直接放在程序里!



但是一次WEB的访问,服务端的对应PHP不是都会跑一次吗?那不是每次都执行一次读取资源的程序??如果PHP没有那么启动的MAIN函数,我是想创建一个全局的变量类,在这个类里面读取下资源。这个全局变量肯定只执行一次吧?

不要想当然!
你运行两个你用C++写的应用程序,难道其中的 main 函数只被执一次?

不要想当然!
你运行两个你用C++写的应用程序,难道其中的 main 函数只被执一次?



可能我从C++那边转不过来,对WEB服务器理解还不够到位啊,说下我的理解:

比如在C++里,启动一个服务程序,在启动过程中执行一次MAIN,然后这个服务程序是一直存在的,接下来就是接受客户端的各种数据包进行处理;

所以在PHP上,我也是觉得应该有这么个东西可以提供一个初始化的服务吧?比如我一些配置表放在MYSQL,启动的时候只要读一次到内存里就可以了,可以满足其他的WEB请求。但好像WEB里面客户端每访问一次页面,对应的PHP都要重新被执行一次。这里就搞不明白了。


直接放在程序里!



但是一次WEB的访问,服务端的对应PHP不是都会跑一次吗?那不是每次都执行一次读取资源的程序??如果PHP没有那么启动的MAIN函数,我是想创建一个全局的变量类,在这个类里面读取下资源。这个全局变量肯定只执行一次吧?
每个客户端访问如果用C++来对应的话就是重新打开一个程序客户端。
一般来说,PHP全局性的变量或者要运行的程序都是放在一个init.php文件,哪个文件需要使用这些全局化的配置信息可以包含这个文件。
对于同一个访问用户(SESSION没过期,一般SESSION是关闭浏览器之后算过期),对天这样的用户可以用session来存储相关的配置选项,这样用户在访问其他页面的时候可以直接从session中获取该用户的配置选项。



直接放在程序里!



但是一次WEB的访问,服务端的对应PHP不是都会跑一次吗?那不是每次都执行一次读取资源的程序??如果PHP没有那么启动的MAIN函数,我是想创建一个全局的变量类,在这个类里面读取下资源。这个全局变量肯定只执行一次吧?
每个客户端访问如果用C++来对应的话就是重新打开一个程序客户端。
一般来说,PHP全局性的变量或者要运行的程序都是放在一个init.php文件,哪个文件需要使用这些全局化的配置信息可以包含这个文件。
对于同一个访问用户(SESSION没过期,一般SESSION是关闭浏览器之后算过期),对天这样的用户可以用session来存储相关的配置选项,这样用户在访问其他页面的时候可以直接从session中获取该用户的配置选项。

那比如,我要载入的这个配置是要从mysql里面读取一份表。即使有一份公共的init.php,每个用户的web访问都会包含这个init.php,那不是仍然要每次都要去mysql做一次读取吗?

1、关于配置性的东西 你可以研究一下比较著名的PHP开发框架和现有的PHP开源程序,这些框架在初始化配置方面做的很好。2、从C/S架构转B/S架构比较难转换的概念是Web后端程序的存活周期,你做C++的话可以这样理解,你的Web后端没有While(true)这样的无限循环和阻塞,运行完了这个实例就销毁了,如果想留下你的运行状态信息、运行结果等,你只能将你的运行结果存储在一个特别的临时文件[session]中,这个临时文件在某个时候【这个可以设置,如果不设置的话一般是用户关闭浏览器】会销毁,在没有销毁的情况下,你再次打开这个程序,可以通过打开这个临时文件读取你那时的运行状态,然后继续按照这个点再运行。
3、Web后端程序一般为了良好的用户体验都会有超时限制,所以不能有类似While(true)之类的无限循环。

php 程序和c++桌面程序一样,每次启动时都要初始化环境
这一点你应该能够理解吧?

所谓服务程序,是常驻内存的程序。看似只需要初始化一次,其实不然
如果我启动两个这个服务程序(当然程序需设计的不会出现冲突)那么每个程序依然还是要完成自己的初始化的

php 是服务器端脚本,由 web 服务器启动,所以他不会常驻内存。
也就是每次调用都要初始化的原因




直接放在程序里!



但是一次WEB的访问,服务端的对应PHP不是都会跑一次吗?那不是每次都执行一次读取资源的程序??如果PHP没有那么启动的MAIN函数,我是想创建一个全局的变量类,在这个类里面读取下资源。这个全局变量肯定只执行一次吧?
每个客户端访问如果用C++来对应的话就是重新打开一个程序客户端。
一般来说,PHP全局性的变量或者要运行的程序都是放在一个init.php文件,哪个文件需要使用这些全局化的配置信息可以包含这个文件。
对于同一个访问用户(SESSION没过期,一般SESSION是关闭浏览器之后算过期),对天这样的用户可以用session来存储相关的配置选项,这样用户在访问其他页面的时候可以直接从session中获取该用户的配置选项。

那比如,我要载入的这个配置是要从mysql里面读取一份表。即使有一份公共的init.php,每个用户的web访问都会包含这个init.php,那不是仍然要每次都要去mysql做一次读取吗?
这个要看你这个是什么表,如果是用户的配置信息,不是很多内容的话可以用session存储。
如果是数据的话根据数据的内容来定,有的做cache有的就只能读了。

1、关于配置性的东西 你可以研究一下比较著名的PHP开发框架和现有的PHP开源程序,这些框架在初始化配置方面做的很好。2、从C/S架构转B/S架构比较难转换的概念是Web后端程序的存活周期,你做C++的话可以这样理解,你的Web后端没有While(true)这样的无限循环和阻塞,运行完了这个实例就销毁了,如果想留下你的运行状态信息、运行结果等,你只能将你的运行结果存储在一个特别的临时文件[session]中,这个临时文件在某个时候【这个可以设置,如果不设置的话一般是用户关闭浏览器】会销毁,在没有销毁的情况下,你再次打开这个程序,可以通过打开这个临时文件读取你那时的运行状态,然后继续按照这个点再运行。
3、Web后端程序一般为了良好的用户体验都会有超时限制,所以不能有类似While(true)之类的无限循环。



恩,你说的对,就是这两种架构在生存周期上不太一样,我一时还没转过来。
那如果在B/S架构中,那种全局唯一,只要初始化一次的东西放在哪儿?session的话也是要以同个用户作为一个单位吧?

php 程序和c++桌面程序一样,每次启动时都要初始化环境
这一点你应该能够理解吧?

所谓服务程序,是常驻内存的程序。看似只需要初始化一次,其实不然
如果我启动两个这个服务程序(当然程序需设计的不会出现冲突)那么每个程序依然还是要完成自己的初始化的

php 是服务器端脚本,由 web 服务器启动,所以他不会常驻内存。
也就是每次调用都要初始化的原因



明白了。就是PHP只是被调用的一个东西(比如一个用户访问一次),调用完就销毁了对吧?

对!
用完就完了,下次用时再起炉灶


1、关于配置性的东西 你可以研究一下比较著名的PHP开发框架和现有的PHP开源程序,这些框架在初始化配置方面做的很好。2、从C/S架构转B/S架构比较难转换的概念是Web后端程序的存活周期,你做C++的话可以这样理解,你的Web后端没有While(true)这样的无限循环和阻塞,运行完了这个实例就销毁了,如果想留下你的运行状态信息、运行结果等,你只能将你的运行结果存储在一个特别的临时文件[session]中,这个临时文件在某个时候【这个可以设置,如果不设置的话一般是用户关闭浏览器】会销毁,在没有销毁的情况下,你再次打开这个程序,可以通过打开这个临时文件读取你那时的运行状态,然后继续按照这个点再运行。
3、Web后端程序一般为了良好的用户体验都会有超时限制,所以不能有类似While(true)之类的无限循环。



恩,你说的对,就是这两种架构在生存周期上不太一样,我一时还没转过来。
那如果在B/S架构中,那种全局唯一,只要初始化一次的东西放在哪儿?session的话也是要以同个用户作为一个单位吧?
你直接说全局唯一,只初始化一次的东西是什么样的东西吧。

对!
用完就完了,下次用时再起炉灶


果断通俗易懂,一针见血。



1、关于配置性的东西 你可以研究一下比较著名的PHP开发框架和现有的PHP开源程序,这些框架在初始化配置方面做的很好。2、从C/S架构转B/S架构比较难转换的概念是Web后端程序的存活周期,你做C++的话可以这样理解,你的Web后端没有While(true)这样的无限循环和阻塞,运行完了这个实例就销毁了,如果想留下你的运行状态信息、运行结果等,你只能将你的运行结果存储在一个特别的临时文件[session]中,这个临时文件在某个时候【这个可以设置,如果不设置的话一般是用户关闭浏览器】会销毁,在没有销毁的情况下,你再次打开这个程序,可以通过打开这个临时文件读取你那时的运行状态,然后继续按照这个点再运行。
3、Web后端程序一般为了良好的用户体验都会有超时限制,所以不能有类似While(true)之类的无限循环。



恩,你说的对,就是这两种架构在生存周期上不太一样,我一时还没转过来。
那如果在B/S架构中,那种全局唯一,只要初始化一次的东西放在哪儿?session的话也是要以同个用户作为一个单位吧?
你直接说全局唯一,只初始化一次的东西是什么样的东西吧。

比如我开头说的,一份配置表。这份配置表是在MYSQL里面。这分配表对所有的用户都可以用。
通过刚才的讨论,得知PHP就是“用完就完了,下次用时再起炉灶”,所以如果这份配置代码(查询MYSQL,然后做一些调整)写在PHP里,那么用户每回访问的时候起都要执行一次PHP的代码。
那么从C++那种C/S架构来说,他在S端启动的时候,有个MAIN函数,然后在MAIN函数里面运行一次配置代码,把配置导入到服务端的内存里,其他用户要用,直接本地调用即可。

所以,我就发了这样一个帖子~这么说只能用一些缓存之类的来做了?




1、关于配置性的东西 你可以研究一下比较著名的PHP开发框架和现有的PHP开源程序,这些框架在初始化配置方面做的很好。2、从C/S架构转B/S架构比较难转换的概念是Web后端程序的存活周期,你做C++的话可以这样理解,你的Web后端没有While(true)这样的无限循环和阻塞,运行完了这个实例就销毁了,如果想留下你的运行状态信息、运行结果等,你只能将你的运行结果存储在一个特别的临时文件[session]中,这个临时文件在某个时候【这个可以设置,如果不设置的话一般是用户关闭浏览器】会销毁,在没有销毁的情况下,你再次打开这个程序,可以通过打开这个临时文件读取你那时的运行状态,然后继续按照这个点再运行。
3、Web后端程序一般为了良好的用户体验都会有超时限制,所以不能有类似While(true)之类的无限循环。



恩,你说的对,就是这两种架构在生存周期上不太一样,我一时还没转过来。
那如果在B/S架构中,那种全局唯一,只要初始化一次的东西放在哪儿?session的话也是要以同个用户作为一个单位吧?
你直接说全局唯一,只初始化一次的东西是什么样的东西吧。

比如我开头说的,一份配置表。这份配置表是在MYSQL里面。这分配表对所有的用户都可以用。
通过刚才的讨论,得知PHP就是“用完就完了,下次用时再起炉灶”,所以如果这份配置代码(查询MYSQL,然后做一些调整)写在PHP里,那么用户每回访问的时候起都要执行一次PHP的代码。
那么从C++那种C/S架构来说,他在S端启动的时候,有个MAIN函数,然后在MAIN函数里面运行一次配置代码,把配置导入到服务端的内存里,其他用户要用,直接本地调用即可。

所以,我就发了这样一个帖子~这么说只能用一些缓存之类的来做了?
是的





1、关于配置性的东西 你可以研究一下比较著名的PHP开发框架和现有的PHP开源程序,这些框架在初始化配置方面做的很好。2、从C/S架构转B/S架构比较难转换的概念是Web后端程序的存活周期,你做C++的话可以这样理解,你的Web后端没有While(true)这样的无限循环和阻塞,运行完了这个实例就销毁了,如果想留下你的运行状态信息、运行结果等,你只能将你的运行结果存储在一个特别的临时文件[session]中,这个临时文件在某个时候【这个可以设置,如果不设置的话一般是用户关闭浏览器】会销毁,在没有销毁的情况下,你再次打开这个程序,可以通过打开这个临时文件读取你那时的运行状态,然后继续按照这个点再运行。
3、Web后端程序一般为了良好的用户体验都会有超时限制,所以不能有类似While(true)之类的无限循环。



恩,你说的对,就是这两种架构在生存周期上不太一样,我一时还没转过来。
那如果在B/S架构中,那种全局唯一,只要初始化一次的东西放在哪儿?session的话也是要以同个用户作为一个单位吧?
你直接说全局唯一,只初始化一次的东西是什么样的东西吧。

比如我开头说的,一份配置表。这份配置表是在MYSQL里面。这分配表对所有的用户都可以用。
通过刚才的讨论,得知PHP就是“用完就完了,下次用时再起炉灶”,所以如果这份配置代码(查询MYSQL,然后做一些调整)写在PHP里,那么用户每回访问的时候起都要执行一次PHP的代码。
那么从C++那种C/S架构来说,他在S端启动的时候,有个MAIN函数,然后在MAIN函数里面运行一次配置代码,把配置导入到服务端的内存里,其他用户要用,直接本地调用即可。

所以,我就发了这样一个帖子~这么说只能用一些缓存之类的来做了?
是的


明白了哈。我先直接丢在PHP查询了,等有性能瓶颈的时候再用一些缓存配套进去。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PyCharm與PyTorch完美結合:安裝設定步驟詳解 PyCharm與PyTorch完美結合:安裝設定步驟詳解 Feb 21, 2024 pm 12:00 PM

PyCharm是一款強大的整合開發環境(IDE),而PyTorch則是深度學習領域備受歡迎的開源架構。在機器學習和深度學習領域,使用PyCharm和PyTorch進行開發可以大大提高開發效率和程式碼品質。本文將詳細介紹如何在PyCharm中安裝設定PyTorch,並附上具體的程式碼範例,幫助讀者更好地利用這兩者的強大功能。第一步:安裝PyCharm和Python

在PyCharm中如何設定Git配置 在PyCharm中如何設定Git配置 Feb 20, 2024 am 09:47 AM

標題:如何在PyCharm中正確配置Git在現代軟體開發中,版本控制系統是非常重要的工具,而Git作為其中一種流行的版本控制系統,為開發者提供了強大的功能和靈活的操作。而PyCharm作為一款功能強大的Python整合開發環境,自備了對Git的支持,能夠讓開發者更方便地管理程式碼版本。本文將介紹如何在PyCharm中正確地配置Git,以便於在開發過程中更好地

Linux系統中GDM的工作原理及配置方法 Linux系統中GDM的工作原理及配置方法 Mar 01, 2024 pm 06:36 PM

標題:Linux系統中GDM的工作原理及設定方法在Linux作業系統中,GDM(GNOMEDisplayManager)是一種常見的顯示管理器,用於控制圖形使用者介面(GUI)登入和使用者會話管理。本文將介紹GDM的工作原理和設定方法,以及提供具體的程式碼範例。一、GDM的工作原理GDM是GNOME桌面環境下的顯示管理器,負責啟動X伺服器並提供登入介面,使用者輸

了解Linux Bashrc:功能、設定與使用方法 了解Linux Bashrc:功能、設定與使用方法 Mar 20, 2024 pm 03:30 PM

了解LinuxBashrc:功能、配置與使用方法在Linux系統中,Bashrc(BourneAgainShellrunco​​mmands)是一個非常重要的配置文件,其中包含了系統啟動時自動運行的各種命令和設定。 Bashrc文件通常位於使用者的家目錄下,是一個隱藏文件,它的作用是為使用者自訂設定Bashshell的環境。一、Bashrc的功能設定環境

避免Maven環境配置常見錯誤:解決配置問題 避免Maven環境配置常見錯誤:解決配置問題 Feb 19, 2024 pm 04:56 PM

Maven是Java專案管理和建置工具,被廣泛應用於Java專案的開發中。在使用Maven進行專案建置的過程中,往往會遇到一些常見的環境配置問題。本文將針對這些常見問題進行解答,並提供具體的程式碼範例,幫助讀者避免常見的配置錯誤。 1.Maven環境變數配置錯誤問題描述:使用Maven時,如果環境變數配置不正確,可能導致Maven無法正常運作。解決方法:確保

win11系統如何配置工作小組 win11系統如何配置工作小組 Feb 22, 2024 pm 09:50 PM

Win11系統如何設定工作群組工作群組是一種在區域網路中連接多台電腦的方式,它允許電腦之間共用檔案、印表機和其他資源。在Win11系統中,設定工作群組非常簡單,只需依照下列步驟操作即可。步驟1:開啟「設定」應用程式首先,點擊Win11系統的「開始」按鈕,然後在彈出的選單中選擇「設定」應用程式。你也可以使用快捷鍵“Win+I”開啟“設定”。步驟2:選擇「系統」在「設定」應用程式中,你會看到多個選項。請點選「系統」選項,進入系統設定頁面。步驟3:選擇「關於」在「系統」設定頁面中,你會看到多個子選項。請點

簡單易懂的PyCharm設定Git教學 簡單易懂的PyCharm設定Git教學 Feb 20, 2024 am 08:28 AM

PyCharm是常用的整合開發環境(IDE),在日常開發中,使用Git管理程式碼是不可或缺的。本文將介紹如何在PyCharm中設定Git,並使用Git進行程式碼管理,並附帶具體程式碼範例。第一步:安裝Git首先,確保在你的電腦上已經安裝了Git。如果沒有安裝,可以前往[Git官網](https://git-scm.com/)下載並安裝最新版本的Git

Linux系統中如何設定和安裝FTPS Linux系統中如何設定和安裝FTPS Mar 20, 2024 pm 02:03 PM

標題:Linux系統中如何配置和安裝FTPS,需要具體程式碼範例在Linux系統中,FTPS是一種安全的檔案傳輸協議,與FTP相比,FTPS透過TLS/SSL協議對傳輸的資料進行加密,提高了資料傳輸的安全性。在本文中,將介紹如何在Linux系統中設定和安裝FTPS,並提供特定的程式碼範例。步驟一:安裝vsftpd開啟終端,輸入以下指令安裝vsftpd:sudo

See all articles