PHP: Difference between revisions

From Cumulus Wiki
Jump to navigationJump to search
266 bytes added ,  13:56, 25 May 2020
m
 
(2 intermediate revisions by the same user not shown)
Line 40: Line 40:
One advantage of PHP scripts is because they are processed by the web server nobody can steal your script unless you use some functionality like that [https://cumulus.hosiene.co.uk/viewtopic.php?f=14&t=16425&p=126065 described here].  
One advantage of PHP scripts is because they are processed by the web server nobody can steal your script unless you use some functionality like that [https://cumulus.hosiene.co.uk/viewtopic.php?f=14&t=16425&p=126065 described here].  


If you use PHP for a set of web pages, you can make your web suite very much easier to maintain by not putting every instruction into one script.
If you use PHP for a set of web pages, you can make your web suite very much easier to maintain by not putting every instruction into one script and so avoiding repeating yourself in many places.


PHP allows you to use syntax like 'require' or 'include' to effectively bring in common code from other files. Put simply, when the PHP parser finds "require_once 'file_name';", "require 'file_name';", or the alternative include syntax, the parser reads the file referenced and treats it as if it is part of the original file from then onwards. "include" does not cause an error if it cannot find the file requested. "require" creates an error and aborts the main script if it cannot find the named file. The "_once" is used if the file you want to bring in includes setting variables that you later want to give a new value to, because your new value would be lost if the include happened again. Also a function can only be declared once so if script you select to bring in contains one or more function definitions, either that script must check if function has already been declared before it declares it, or that script must be called with the "_once" variant. However, because using "_once" creates a considerable overhead, the parser must read all files currently loaded to see if the named script  is referenced anywhere else, it is bad coding to use "require_once"/"include_once" variant if the aforementioned reasons don't make it necessary, instead just use plain "require" or "include".
PHP allows you to use syntax like 'require' or 'include' to effectively bring in common code from other files. Put simply, when the PHP parser finds "require_once 'file_name';", "require 'file_name';", or the alternative include syntax, the parser reads the file referenced and treats it as if it is part of the original file from then onwards. "include" does not cause an error if it cannot find the file requested. "require" creates an error and aborts the main script if it cannot find the named file. The "_once" is used if the file you want to bring in includes setting variables that you later want to give a new value to, because your new value would be lost if the include happened again. Also a function can only be declared once so if script you select to bring in contains one or more function definitions, either that script must check if function has already been declared before it declares it, or that script must be called with the "_once" variant. However, because using "_once" creates a considerable overhead, the parser must read all files currently loaded to see if the named script  is referenced anywhere else, it is bad coding to use "require_once"/"include_once" variant if the aforementioned reasons don't make it necessary, instead just use plain "require" or "include".
Line 50: Line 50:
*Some other scripts might contain standard functions (like connecting to a database, reading from a database,  calculating highest or lowest, or they might contain some of your intellectual property in terms of a script that you want to place in a secure location only known when parsing within the web server, so cannot be accessed from the browser and so cannot be hacked.
*Some other scripts might contain standard functions (like connecting to a database, reading from a database,  calculating highest or lowest, or they might contain some of your intellectual property in terms of a script that you want to place in a secure location only known when parsing within the web server, so cannot be accessed from the browser and so cannot be hacked.
*My examples quote extensions using .html or .php, but some people suggest all include scripts are stored in files with an extension '''.inc''' to make it clear that file is not intended to be used on its own, and other advice is to create a separate directory just for files used by require and include.
*My examples quote extensions using .html or .php, but some people suggest all include scripts are stored in files with an extension '''.inc''' to make it clear that file is not intended to be used on its own, and other advice is to create a separate directory just for files used by require and include.
*Some people use this to bring in the equivalent of what the HTML "iframe" syntax does, or to include a data file that you want to show on the web page within HTML '''<output>''' to '''</output>''' tags.


A common mistake with includes is to forget to specify the path correctly. If all files are in same directory use '''.\file_name.extension''' syntax, this is called relative paths and means the requested file is in same directory as calling file. Leaving out the prefix, and the PHP parser will load the first file it finds with that name following the defined'''include_path''' rules. A standard one might start with "./" as first path, but you cannot assume that is the first path if you are writing a script others might use. Equally if all the files to be included are in a common directory at same level as the directory where the calling files are use '''../common/file_name.extension''' syntax.  If you are writing a script that might be used with different web pages, or even in batch, so you cannot be sure of the relative path between calling script and file to be included, declare the absolute path, if necessary using whatever constant represents the root (it might be $_SERVER[DOCUMENT_ROOT]) in the path.
A common mistake with includes is to forget to specify the path correctly. If all files are in same directory use '''.\file_name.extension''' syntax, this is called relative paths and means the requested file is in same directory as calling file. Leaving out the prefix, and the PHP parser will load the first file it finds with that name following the defined'''include_path''' rules. A standard one might start with "./" as first path, but you cannot assume that is the first path if you are writing a script others might use. Equally if all the files to be included are in a common directory at same level as the directory where the calling files are use '''../common/file_name.extension''' syntax.  If you are writing a script that might be used with different web pages, or even in batch, so you cannot be sure of the relative path between calling script and file to be included, declare the absolute path, if necessary using whatever constant represents the root (it might be $_SERVER[DOCUMENT_ROOT]) in the path.
5,838

edits

Navigation menu