@@ -114,3 +114,56 @@ class Api extends RestController {
114
114
}
115
115
}
116
116
```
117
+
118
+ ## Extending supported formats
119
+
120
+ If you need to be able to support more formats for replies, you can extend the
121
+ ` Format ` class to add the required ` to_... ` methods
122
+
123
+ 1 . Extend the ` RestController ` class (in ` libraries/MY_REST_Controller.php ` )
124
+ ``` php
125
+ <?php
126
+
127
+ use chriskacerguis\RestServer\RestController;
128
+
129
+ class MY_REST_Controller extends RestController
130
+ {
131
+ public function __construct()
132
+ {
133
+ parent::__construct();
134
+ // This can be the library's chriskacerguis\RestServer\Format
135
+ // or your own custom overloaded Format class (see bellow)
136
+ $this->format = new Format();
137
+ }
138
+ }
139
+ ```
140
+
141
+ 2 . Extend the ` Format ` class (can be created as a CodeIgniter library in ` libraries/Format.php ` ).
142
+ Following is an example to add support for PDF output
143
+
144
+ ``` php
145
+ <?php
146
+
147
+ use chriskacerguis\RestServer\Format as RestServerFormat;
148
+
149
+ class Format extends RestServerFormat
150
+ {
151
+ public function to_pdf($data = null)
152
+ {
153
+ if ($data === null && func_num_args() === 0) {
154
+ $data = $this->_data;
155
+ }
156
+
157
+ if (is_array($data) || substr($data, 0, 4) != '%PDF') {
158
+ $html = $this->to_html($data);
159
+
160
+ // Use your PDF lib of choice. For example mpdf
161
+ $mpdf = new \Mpdf\Mpdf();
162
+ $mpdf->WriteHTML($html);
163
+ return $mpdf->Output('', 'S');
164
+ }
165
+
166
+ return $data;
167
+ }
168
+ }
169
+ ```
0 commit comments