Php include can find file

Best way to include file in PHP?

I’m currently developping a PHP web application and I would like to know what is the best manner to include files (include_once) in a way where the code it is still maintanable. By maintanable I mean that if I want to move a file, It’d be easy to refactor my application to make it work properly. I have a lot of files since I try to have good OOP practices (one file). Here’s a typical class structure for my application:

namespace Controls < use Drawing\Color; include_once '/../Control.php'; class GridView extends Control < public $evenRowColor; public $oddRowColor; public function __construct() < >public function draw() < >protected function generateStyle() < >private function drawColumns() < >> > 

I’ve had this question too, and I’ve come to the result that PHP really doesn’t have a very good package system. Netbeans does help though.

2 Answers 2

I used to start all my php file with:

Then in that file I would require_once all the other files that needed to be required, like functions.php for example, or globals.php where I would declare all global variables, or constants. That way you only have to edit all your setting at one place.

Читайте также:  Производная функции python scipy

to make this even more maintainable, you could define the path to the init (or config, as i usually call them) file as an environment variable. No matter how deep the directory structure of the app gets, every file can just import $_ENV[‘my_app_config’] and not have to worry about stuff like include_once(‘../../../init.php’) .

It depends on what you are trying to accomplish exactly.

If you want to have a configurable mapping between files and the directories in which they reside you need to work out a path abstraction and implement some loader functions to work with that. I ‘ll do an example.

Let’s say we will use a notation like Core.Controls.Control to refer to the (physical) file Control.php which will be found in the (logical) directory Core.Controls . We ‘ll need to do a two-part implementation:

  1. Instruct our loader that Core.Controls is mapped to the physical directory /controls .
  2. Search for Control.php in that directory.
class Loader < private static $dirMap = array(); public static function Register($virtual, $physical) < self::$dirMap[$virtual] = $physical; >public static function Include($file) < $pos = strrpos($file, '.'); if ($pos === false) < die('Error: expected at least one dot.'); >$path = substr($file, 0, $pos); $file = substr($file, $pos + 1); if (!isset(self::$dirMap[$path])) < die('Unknown virtual directory: '.$path); >include (self::$dirMap[$path].'/'.$file.'.php'); > > 

You would use the loader like this:

// This will probably be done on application startup. // We need to use an absolute path here, but this is not hard to get with // e.g. dirname(_FILE_) from your setup script or some such. // Hardcoded for the example. Loader::Register('Core.Controls', '/controls'); // And then at some other point: Loader::Include('Core.Controls.Control'); 

Of course this example is the bare minimum that does something useful, but you can see what it allows you to do.

Apologies if I have made any small mistakes, I ‘m typing this as I go. 🙂

Источник

PHP Include

Summary: in this tutorial, you will learn how to include code from a file using the PHP include construct.

Introduction to the PHP include construct

The include construct allows you to load the code from another file into a file. Here’s the syntax of the include construct:

include 'path_to_file';Code language: PHP (php)

In this syntax, you place the path to the file after the include keyword. For example, to load the code from the functions.php file into the index.php file, you can use the following include statement:

 // index.php file include 'functions.php';Code language: HTML, XML (xml)

If PHP cannot find the ‘functions.php’ file in the src directory, it’ll issue a warning. For example:

Warning: include(functions.php): failed to open stream: No such file or directory in . on line 4 Warning: include(): Failed opening 'functions.php' for inclusion (include_path='\xampp\php\PEAR') in . on line 4Code language: PHP (php)

When loading the functions.php file, PHP first looks for the functions.php file in the directory specified by the include_path . In this example, it’s ‘\xampp\php\PEAR’ . If PHP can find the functions.php file there, it loads the code from the file.

Otherwise, PHP searches the functions.php file in the directory of the calling script and the current working directory. If PHP can find the functions.php file there, it loads the code. Otherwise, it issues a warning if the file doesn’t exist.

When PHP loads the functions.php file, it actually executes the code inside the functions.php file. For example, if you place the following code in the functions.php file:

 // functions.php function get_copyright() < return 'Copyright © ' . date('Y') . ' by phptutorial.net. All Rights Reserved!'; > echo get_copyright(); Code language: HTML, XML (xml)

and include the functions.php in the index.php file, you’ll see the following output when you run the index.php file:

Copyright © 2021 by phptutorial.net. All Rights Reserved!Code language: CSS (css)

This demonstrated that the include construct does make PHP executes code in the functions.php file.

PHP include example

In practice, you’ll often use the include construct to the page elements from a general site design. For example, all pages in your website may have the same header and footer.

To avoid repeating these elements on multiple pages, you can place the code of the header and footer in separate files such as header.php and footer.php and include them on the pages.

Typically, you place the template files like header.php and footer.php in a separate directory. By convention, the name of the include directory is inc :

. ├── index.php ├── functions.php ├── inc │ ├── footer.php │ └── header.php └── public ├── css │ └── style.css └── js └── app.jsCode language: CSS (css)

The header.php file contains the code of the header of the page. It has a link to the style.css file located in the public/css directory:

html> html lang="en"> head> meta charset="UTF-8" /> meta name="viewport" content="width=device-width, initial-scale=1.0" /> link rel="stylesheet" href="public/css/style.css"> title>PHP include Example title> head> body>Code language: HTML, XML (xml)

The footer.php file contains the code related to the footer of the page:

script src="js/app.js"> script> body> html>Code language: HTML, XML (xml)

In the index.php file, you can include the header.php and footer.php file like this:

 include 'inc/header.php'; ?> h1>PHP include h1> p>This shows how the PHP include construct works. p>  include 'inc/footer.php'; ?>Code language: HTML, XML (xml)

If you run the index.php file and view the source code of the page, you’ll also see the code from the header.php and footer.php files:

html> html lang="en"> head> meta charset="UTF-8" /> meta name="viewport" content="width=device-width, initial-scale=1.0" /> link rel="stylesheet" href="public/css/style.css" /> title>PHP include Example title> head> body> h1>PHP include h1> p>This shows how the PHP include construct works. p> script src="public/js/app.js"> script> body> html>Code language: HTML, XML (xml)

PHP include & variable scopes

When you include a file, all the variables defined in that file inherit the variable scope of the line on which the include occurs.

1) Including outside a function example

For example, the following defines the $title and $content variables in the functions.php :

 // functions.php $title = 'PHP include'; $content = 'This shows how the PHP include construct works.';Code language: HTML, XML (xml)

When you include the functions.php in the index.php file, the $title and $content variables become the global variables in the index.php file. And you can use them as follows:

 include 'inc/header.php'; ?>  include_once 'functions.php'; ?> h1> echo $title; ?> h1> p> echo $content; ?> p>  include 'inc/footer.php'; ?>Code language: HTML, XML (xml)

2) Including within a function example

However, if you include a file in a function, the variables from the included file are local to that function. See the following example:

 include 'inc/header.php'; ?>  include_once 'functions.php'; ?>  function render_article() < include 'functions.php'; return " 

$title

$content
"
; > echo render_article(); ?>
include 'inc/footer.php'; ?>
Code language: HTML, XML (xml)

In this example, we include the functions.php inside the render_article() function. Therefore, the $title and $content variables from the functions.php are local to the render_function() .

It’s important to note that all functions, classes, interfaces, and traits defined in the included file will have a global scope.

Summary

Источник

PHP Include Files

The include (or require ) statement takes all the text/code/markup that exists in the specified file and copies it into the file that uses the include statement.

Including files is very useful when you want to include the same PHP, HTML, or text on multiple pages of a website.

PHP include and require Statements

It is possible to insert the content of one PHP file into another PHP file (before the server executes it), with the include or require statement.

The include and require statements are identical, except upon failure:

  • require will produce a fatal error (E_COMPILE_ERROR) and stop the script
  • include will only produce a warning (E_WARNING) and the script will continue

So, if you want the execution to go on and show users the output, even if the include file is missing, use the include statement. Otherwise, in case of FrameWork, CMS, or a complex PHP application coding, always use the require statement to include a key file to the flow of execution. This will help avoid compromising your application’s security and integrity, just in-case one key file is accidentally missing.

Including files saves a lot of work. This means that you can create a standard header, footer, or menu file for all your web pages. Then, when the header needs to be updated, you can only update the header include file.

Syntax

PHP include Examples

Example 1

Assume we have a standard footer file called «footer.php», that looks like this:

To include the footer file in a page, use the include statement:

Example

Welcome to my home page!

Some text.

Some more text.

Example 2

Assume we have a standard menu file called «menu.php»:

All pages in the Web site should use this menu file. Here is how it can be done (we are using a element so that the menu easily can be styled with CSS later):

Example

Welcome to my home page!

Some text.

Some more text.

Example 3

Assume we have a file called «vars.php», with some variables defined:

Then, if we include the «vars.php» file, the variables can be used in the calling file:

Example

Welcome to my home page!

echo «I have a $color $car.»;
?>

PHP include vs. require

The require statement is also used to include a file into the PHP code.

However, there is one big difference between include and require; when a file is included with the include statement and PHP cannot find it, the script will continue to execute:

Example

Welcome to my home page!

echo «I have a $color $car.»;
?>

If we do the same example using the require statement, the echo statement will not be executed because the script execution dies after the require statement returned a fatal error:

Example

Welcome to my home page!

echo «I have a $color $car.»;
?>

Use require when the file is required by the application.

Use include when the file is not required and application should continue when file is not found.

Источник

Оцените статью