您好,欢迎访问一九零五行业门户网

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

比如在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查询了,等有性能瓶颈的时候再用一些缓存配套进去。
其它类似信息

推荐信息