From 7cf3a0a2bf7108b3680d9204edf27630f94ced9f Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:51:40 -0400 Subject: [PATCH 01/17] Update ENG-03-Quick-Start.md --- ENG-03-Quick-Start.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-03-Quick-Start.md b/ENG-03-Quick-Start.md index e21c7e1..11e84df 100644 --- a/ENG-03-Quick-Start.md +++ b/ENG-03-Quick-Start.md @@ -189,4 +189,4 @@ We see that adding a controller to an application is very simple. You only need **Note: Drogon has no restrictions on the location of the controller source files. You could also save them in "./" (the project root directory), or you could even define a new directory in `CMakeLists.txt`. It is recommended to use the controllers directory for the convenience of management.** -# 04.0 [Controller Introduction](ENG-04-0-Controller-Introduction) +# 04.0 [Controller Introduction](ENG-04-0-Controller-Introduction.md) From fdbb5cec565618a27db4847b3bf34a2fecc0d3c8 Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:52:13 -0400 Subject: [PATCH 02/17] Update ENG-04-0-Controller-Introduction.md --- ENG-04-0-Controller-Introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-04-0-Controller-Introduction.md b/ENG-04-0-Controller-Introduction.md index 3dbbcb6..b4b6eda 100644 --- a/ENG-04-0-Controller-Introduction.md +++ b/ENG-04-0-Controller-Introduction.md @@ -32,4 +32,4 @@ public: A controller registered to a drogon framework will have at most only one instance and will not be destroyed during the entire application run, so users can declare and use member variables in the controller class. Note that when the handler of the controller is called, it is in a multi-threaded environment (when the number of IO threads of the framework is configured to be greater than 1), if you need to access non-temporary variables, please do the concurrent protection work. -# 04.1 [HttpSimpleController](ENG-04-1-Controller-HttpSimpleController) \ No newline at end of file +# 04.1 [HttpSimpleController](ENG-04-1-Controller-HttpSimpleController.md) From b63c7dc6c8f818fa4a0ebd5c33d1597727933814 Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:53:19 -0400 Subject: [PATCH 03/17] Update ENG-04-1-Controller-HttpSimpleController.md --- ENG-04-1-Controller-HttpSimpleController.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-04-1-Controller-HttpSimpleController.md b/ENG-04-1-Controller-HttpSimpleController.md index 6edaa0b..ecae2ed 100644 --- a/ENG-04-1-Controller-HttpSimpleController.md +++ b/ENG-04-1-Controller-HttpSimpleController.md @@ -61,4 +61,4 @@ You could define an HttpResponse class variable, and then use the callback() to **The mapping from the above path to the handler is done at compile time. In fact, the drogon framework also provides an interface for runtime completion mapping. The runtime mapping allows the user to map or modify the mapping through configuration files or other user interfaces without recompiling this program (For performance reasons, it is forbidden to add any controller mapping after running the app().run() method).** -# 04.2 [HttpController](ENG-04-2-Controller-HttpController) +# 04.2 [HttpController](ENG-04-2-Controller-HttpController.md) From 19b55db947b3fa77ff2a7fd951d2d9473493ee21 Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:54:39 -0400 Subject: [PATCH 04/17] Update ENG-04-2-Controller-HttpController.md --- ENG-04-2-Controller-HttpController.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-04-2-Controller-HttpController.md b/ENG-04-2-Controller-HttpController.md index b21a0fb..aded19d 100644 --- a/ENG-04-2-Controller-HttpController.md +++ b/ENG-04-2-Controller-HttpController.md @@ -275,4 +275,4 @@ As can be seen, parameter mapping can also be done using regular expressions, an **It should be noted that when using regular expressions, you should pay attention to matching conflicts (multiple different handlers are matched). When conflicts happen in the same controller, drogon will only execute the first handler (the one registered in the framework first). When conflicts happen between different controllers, it is uncertain which handler will be executed. Therefore, users need to avoid these conflicts.** -# 04.3 [WebSocketController](ENG-04-3-Controller-WebSocketController) +# 04.3 [WebSocketController](ENG-04-3-Controller-WebSocketController.md) From 7d988f7e8a20c1b82867852328952b3f7460583e Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:55:34 -0400 Subject: [PATCH 05/17] Update ENG-04-3-Controller-WebSocketController.md --- ENG-04-3-Controller-WebSocketController.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-04-3-Controller-WebSocketController.md b/ENG-04-3-Controller-WebSocketController.md index ec0b42d..6ebcdf3 100644 --- a/ENG-04-3-Controller-WebSocketController.md +++ b/ENG-04-3-Controller-WebSocketController.md @@ -144,4 +144,4 @@ const any &getContext() const; any *getMutableContext(); ``` -# 05 [Filter](ENG-05-Filter) \ No newline at end of file +# 05 [Filter](ENG-05-Filter.md) From 61fc3655ff522a00dc180c40061e0e98f7b6ad0b Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:56:00 -0400 Subject: [PATCH 06/17] Update ENG-05-Filter.md --- ENG-05-Filter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-05-Filter.md b/ENG-05-Filter.md index 15f1bf3..d47341c 100644 --- a/ENG-05-Filter.md +++ b/ENG-05-Filter.md @@ -50,4 +50,4 @@ As you can see, the configuration and registration of filters are very simple. T **Note: If the filter is defined in the namespace, you must write the namespace completely when you register the filter.** -# 06 [View](ENG-06-View) \ No newline at end of file +# 06 [View](ENG-06-View.md) From f575bb2d75e4138b925c6c567024af8e8429cb8b Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:56:27 -0400 Subject: [PATCH 07/17] Update ENG-06-View.md --- ENG-06-View.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-06-View.md b/ENG-06-View.md index 652351e..327a886 100644 --- a/ENG-06-View.md +++ b/ENG-06-View.md @@ -148,4 +148,4 @@ Obviously, this function depends on the development environment. If both drogon **Note: If a `symbol not found` error occurs while loading a dynamic view, please use the `cmake .. -DCMAKE_ENABLE_EXPORTS=on` to configure your project, or uncomment the last line (`set_property(TARGET ${PROJECT_NAME} PROPERTY ENABLE_EXPORTS ON)`) in your project's CMakeLists.txt, and then rebuild the project** -# 07 [Session](ENG-07-Session) \ No newline at end of file +# 07 [Session](ENG-07-Session.md) From 2085233d06b7c288e151e0843cfb95d498e9c1c2 Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:56:45 -0400 Subject: [PATCH 08/17] Update ENG-07-Session.md --- ENG-07-Session.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-07-Session.md b/ENG-07-Session.md index 5347612..0956f52 100644 --- a/ENG-07-Session.md +++ b/ENG-07-Session.md @@ -95,4 +95,4 @@ drogon::HttpAppFramework::instance().enableSession(1200); Recompile the entire project with CMake, run the target program webapp, and you can see the effect through the browser. -# 08.0 [Database](ENG-08-0-Database-General) +# 08.0 [Database](ENG-08-0-Database-General.md) From 8ee6dbd5b446c0543c0e18be6515cc21532a8a7f Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:57:08 -0400 Subject: [PATCH 09/17] Update ENG-08-0-Database-General.md --- ENG-08-0-Database-General.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ENG-08-0-Database-General.md b/ENG-08-0-Database-General.md index d22c65f..056c13a 100644 --- a/ENG-08-0-Database-General.md +++ b/ENG-08-0-Database-General.md @@ -20,6 +20,6 @@ The transaction object can be generated by `DbClient` to support transaction ope ### ORM -Drogon also provides support for **ORM**. Users can use the drogon_ctl command to read the tables in the database and generate the corresponding model source code. Then, execute the database operations of these models through the `Mapper` class template. Mapper provides simple and convenient interfaces for standard database operations, allowing users to make the additions, deletions, and changes to the table without writing sql statements. For **ORM**, please refer to [ORM](ENG-08-3-DataBase-ORM) +Drogon also provides support for **ORM**. Users can use the drogon_ctl command to read the tables in the database and generate the corresponding model source code. Then, execute the database operations of these models through the `Mapper` class template. Mapper provides simple and convenient interfaces for standard database operations, allowing users to make the additions, deletions, and changes to the table without writing sql statements. For **ORM**, please refer to [ORM](ENG-08-3-DataBase-ORM.md) -# 08.1 [DbClient](ENG-08-1-DataBase-DbClient) \ No newline at end of file +# 08.1 [DbClient](ENG-08-1-DataBase-DbClient.md) From 1cb656045a29ab3432d82eb4b0d4ea215b128635 Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:57:33 -0400 Subject: [PATCH 10/17] Update ENG-08-2-DataBase-Transaction.md --- ENG-08-2-DataBase-Transaction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-08-2-DataBase-Transaction.md b/ENG-08-2-DataBase-Transaction.md index 75b757e..4623de0 100644 --- a/ENG-08-2-DataBase-Transaction.md +++ b/ENG-08-2-DataBase-Transaction.md @@ -81,4 +81,4 @@ For the simplest example, suppose there is a task table from which the user sele In this case, select for update is used to avoid concurrent modifications. The update statement is completed in the result callback of the select statement. The outermost braces are used to limit the scope of the transPtr so that it can be destroyed in time after the execution of sql to end the transaction. -# 08.3 [ORM](ENG-08-3-DataBase-ORM) +# 08.3 [ORM](ENG-08-3-DataBase-ORM.md) From 3f9b2380fcfd242c00c81b131f634acb4e105fe2 Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:57:55 -0400 Subject: [PATCH 11/17] Update ENG-08-3-DataBase-ORM.md --- ENG-08-3-DataBase-ORM.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-08-3-DataBase-ORM.md b/ENG-08-3-DataBase-ORM.md index eeb98e3..cc9b40d 100644 --- a/ENG-08-3-DataBase-ORM.md +++ b/ENG-08-3-DataBase-ORM.md @@ -281,4 +281,4 @@ drogon_ctl can also generate restful-style controllers for each model (or table) It should be noted that the controller of each table is designed to be composed of a base class and a subclass. Among them, the base class and the table are closely related, and the subclass is used to implement special business logic or modify the interface format. The advantage of this design is that when the table structure changes, users can update only the base class without overwriting the subclass(by setting the `generate_base_only` option to `true`). -# 08.4 [FastDbClient](ENG-08-4-DataBase-FastDbClient) +# 08.4 [FastDbClient](ENG-08-4-DataBase-FastDbClient.md) From 5e1ec75a8d922050f1b1bb84a0d38b52789e0d32 Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:58:16 -0400 Subject: [PATCH 12/17] Update ENG-08-4-DataBase-FastDbClient.md --- ENG-08-4-DataBase-FastDbClient.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-08-4-DataBase-FastDbClient.md b/ENG-08-4-DataBase-FastDbClient.md index cf74203..c4d87a1 100644 --- a/ENG-08-4-DataBase-FastDbClient.md +++ b/ENG-08-4-DataBase-FastDbClient.md @@ -28,4 +28,4 @@ The use of FastDbClient is almost identical to that of the normal DbClient, exce * Synchronous transaction creation interfaces are likely to block (when all connections are busy), so FastDbClient's synchronous transaction creation interface returns null pointers directly. If you want to use transactions on FastDbClient, please use the asynchronous transaction creation interface. * After using the FastDbClient to create an Orm Mapper object, you should also use only asynchronous non-blocking interfaces of the mapper object. -# 08.5 [Automatic batch mode](ENG-08-5-DataBase-auto_batch) \ No newline at end of file +# 08.5 [Automatic batch mode](ENG-08-5-DataBase-auto_batch.md) From d95ce3812a43ef31a97ffc462aa5ad552d85bbfb Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:58:28 -0400 Subject: [PATCH 13/17] Update ENG-08-5-DataBase-auto_batch.md --- ENG-08-5-DataBase-auto_batch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-08-5-DataBase-auto_batch.md b/ENG-08-5-DataBase-auto_batch.md index 64e406f..324da47 100644 --- a/ENG-08-5-DataBase-auto_batch.md +++ b/ENG-08-5-DataBase-auto_batch.md @@ -31,4 +31,4 @@ Therefore, automatic batch mode is helpful to improve performance, but it is not When using the newPgClient interface to create a client, set the third parameter to true to enable automatic batch mode; When using a configuration file to create a client, set the auto_batch option to true to enable automatic batch mode for the client; -# 09 [Plugins](ENG-09-Plugins) \ No newline at end of file +# 09 [Plugins](ENG-09-Plugins.md) From 16fb4fb3750ae9f0d966f77a73a1b532a3987f25 Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:58:45 -0400 Subject: [PATCH 14/17] Update ENG-09-Plugins.md --- ENG-09-Plugins.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-09-Plugins.md b/ENG-09-Plugins.md index e59d8e1..4770571 100644 --- a/ENG-09-Plugins.md +++ b/ENG-09-Plugins.md @@ -72,4 +72,4 @@ Note that it is best to get the plugin after calling the framework's run() inter All plugins are initialized in the run() interface of the framework and are destroyed when the application exits. Therefore, the plugin's lifecycle is almost identical to the application, which is why the getPlugin() interface does not need to return a smart pointer. -# 10 [Configuration File](ENG-10-Configuration-File) \ No newline at end of file +# 10 [Configuration File](ENG-10-Configuration-File.md) From b062ff44c7b7cc6aec11123e5d7fdcd8aaa7f180 Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:59:11 -0400 Subject: [PATCH 15/17] Update ENG-10-Configuration-File.md --- ENG-10-Configuration-File.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ENG-10-Configuration-File.md b/ENG-10-Configuration-File.md index 1dd5279..5ac6e38 100644 --- a/ENG-10-Configuration-File.md +++ b/ENG-10-Configuration-File.md @@ -307,7 +307,7 @@ Among them: * `dynamic_views_path`:Boolean value, the default value is false. When it is true, the framework searches view files in the view path and dynamically compiles them into .so files, then loads them into the application. When any view file changes, it will also cause automatic compilation and re-loading; * `dynamic_views_path`:An array of strings, each of which represents the search path of the dynamic view. If the path value is not starting with `/`, `./` or `../`, and the value is not `.` or `..`, then This path is the relative path of the previous document_root entry, otherwise it is an absolute path or a relative path to the current directory. -See [View](ENG-06-View) +See [View](ENG-06-View.md) ### Server header field @@ -332,4 +332,4 @@ The `pipelining_requests` sets the maximum number of unhandled requests that can "pipelining_requests": 0 ``` -# 11 [drogon_ctl Command](ENG-11-drogon_ctl-Command) +# 11 [drogon_ctl Command](ENG-11-drogon_ctl-Command.md) From 61bffce9ea0b1d39df17b9e53492c002ef5929f8 Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:59:43 -0400 Subject: [PATCH 16/17] Update ENG-11-drogon_ctl-Command.md --- ENG-11-drogon_ctl-Command.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-11-drogon_ctl-Command.md b/ENG-11-drogon_ctl-Command.md index a5fae3e..01e15a8 100644 --- a/ENG-11-drogon_ctl-Command.md +++ b/ENG-11-drogon_ctl-Command.md @@ -166,4 +166,4 @@ dg_ctl press -n1000000 -t4 -c1000 -q http://localhost:8080/ dg_ctl press -n 1000000 -t 4 -c 1000 https://www.domain.com/path/to/be/tested ``` -# 12 [AOP](ENG-12-AOP-Aspect-Oriented-Programming) +# 12 [AOP](ENG-12-AOP-Aspect-Oriented-Programming.md) From 5a8964df33d267b58553170a67b59854ce6e6bf7 Mon Sep 17 00:00:00 2001 From: Marouane <57333995+riimuru@users.noreply.github.com> Date: Fri, 30 Sep 2022 23:00:02 -0400 Subject: [PATCH 17/17] Update ENG-12-AOP-Aspect-Oriented-Programming.md --- ENG-12-AOP-Aspect-Oriented-Programming.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ENG-12-AOP-Aspect-Oriented-Programming.md b/ENG-12-AOP-Aspect-Oriented-Programming.md index a201a63..8923757 100644 --- a/ENG-12-AOP-Aspect-Oriented-Programming.md +++ b/ENG-12-AOP-Aspect-Oriented-Programming.md @@ -28,4 +28,4 @@ The following figure shows the location of the above four joinpoints in the HTTP ![](images/AOP.png) -# 13 [Benchmarks](ENG-13-Benchmarks) \ No newline at end of file +# 13 [Benchmarks](ENG-13-Benchmarks.md)