Current Location: Home> Latest Articles> How to Add Module Files in ThinkPHP Framework: Detailed Steps and Implementation

How to Add Module Files in ThinkPHP Framework: Detailed Steps and Implementation

gitbox 2025-06-28

Introduction to ThinkPHP Framework

ThinkPHP is an open-source PHP framework that provides efficient features and good extensibility, widely used in web application development. Modularity is one of the key features of ThinkPHP, allowing developers to split different functionalities into independent modules for better management and extension.

How to Add Module Files in ThinkPHP

This article will guide you through the detailed steps of creating and adding a module file in the ThinkPHP framework. The main steps include:

  • Creating module folder
  • Creating controller file
  • Creating model file
  • Creating view file
  • Configuring routing
  • Accessing the module file

Creating Module Folder

In the ThinkPHP application root directory, there is typically a "modules" folder. To create a new module, you need to add a sub-folder under this folder. For example, to create a module named "test", you can run the following command:

mkdir modules/test

Once the command is executed, a "test" module folder will be created successfully.

Creating Controller File

The controller is the core part of a module, responsible for handling user requests. Inside the "test" module folder, you need to create a controller file, such as "IndexController.class.php". The controller can be created with the following command:

cd modules/test

touch IndexController.class.php

Then, open the "IndexController.class.php" file and add the following code:

<?php
namespace Test\Controller;

use Think\Controller;

class IndexController extends Controller {
    public function index() {
        echo 'Hello, Test!';
    }
}

The code defines an "IndexController" controller with an "index" method that outputs "Hello, Test!".

Creating Model File

In ThinkPHP, the model class is used to handle database interactions. To create a model file named "UserModel.class.php", you can run the following command:

touch UserModel.class.php

Next, open the "UserModel.class.php" file and add the following code:

<?php
namespace Test\Model;

use Think\Model;

class UserModel extends Model {
    // Model class implementation
}

Thus, we have successfully defined the "UserModel" model class.

Creating View File

The view file is responsible for presenting the data to the user. Inside the "test" module folder, you can create a view file called "index.html". Create the view file with the following command:

touch index.html

Then, open the "index.html" file and add the following code:

<html>
<head>
    <title>Test Module</title>
</head>
<body>
    <h1>Hello, Test!</h1>
</body>
</html>

This view defines a simple HTML page containing a title and a large header showing "Hello, Test!".

Configuring Routing

To ensure that ThinkPHP can correctly access our newly created module files, we need to configure the routing in the "routes.php" file. First, navigate to the configuration folder:

cd ./Conf

vim routes.php

In the "routes.php" file, find the line containing "return array(" and add the following routing rule:

'test' => 'Test/Index/index',

This configuration maps the "test" route to the "Index" controller's "index" method in the "Test" module.

Accessing the Module File

After completing the above steps, you can access the newly created module via the URL in the format: "module/controller/method". For example, to access the "Index" controller's "index" method in the "test" module, use the following URL:

http://your-domain/test/index/index

Upon accessing the URL, the browser will display "Hello, Test!", confirming that the module has been successfully created and configured.

Conclusion

Through the steps outlined in this article, we've learned how to create and configure a new module file in ThinkPHP. By creating module folders, controller files, model files, view files, and configuring routing, developers can easily extend and manage various functional modules in their ThinkPHP projects.