| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- use Adepto\Slim3Init\HandlerCaller;
- use Adepto\Slim3Init\{
- Handlers\Handler,
- Handlers\Route
- };
- use Psr\Http\Message\{
- ServerRequestInterface,
- ResponseInterface
- };
- class MyHandler extends Handler {
- public function soos(ServerRequestInterface $request, ResponseInterface $response, \stdClass $args): ResponseInterface {
- $lel[] = 'A';
- $lel[] = 'B';
- $lel[] = 'C';
- $lal['t'] = 'A';
- $lal['tt'] = 'B';
- $lal['ttt'] = 'C';
- $lal['tttt'] = 'D';
- $lol['a'] = $lel;
- $lol['b'] = $lal;
- return $response->withJson($lol);
- }
- public function error(ServerRequestInterface $request, ResponseInterface $response, \stdClass $args): ResponseInterface {
- throw new Error('Lol', 42);
- }
- public function devblog(ServerRequestInterface $request, ResponseInterface $response, \stdClass $args): ResponseInterface {
- $blog = '
- Ecconia\'s dusty server-machine
- - For this project the webserver owned by Ecconia has been started again and a fresh Ubuntu 18.04 has been installed.
- - Basic setup has been made, editing bash, setting up ssh and vim.
- Sever software
- - Nginx shall be the server for this project, its easy to setup and all config files are at one place.
- Security
- - All traffic will be routed over Cloudflare. The connections from and to Cloudflare are encrypted with SSL.
- - The connection is as secure as Cloudflare is (lets trust it...). Cloudflare mainly caches files and protects against DDOS.
- Vue-Framework added to website
- - Vue is a framework which uses javascript to manipulate the HTML-DOM of the browser. This allows very easy web-developing.
- - Nice feature: Updating the website according to JS variables.
- - Downside: SEO may fail.
- After reading millions of documentation
- - The first simple version of the website has been written, a single HTMl file contains the whole website.
- Vue-Router
- - The website is using Vue-Router it allows natural page switching without actually doing so. The content will just be replaced by Vue.
- The small steps
- - The start page as well as the application page shall function the same as on the current website. Additional this devblog has been added. An Impressum is a must have as soon as the server is located in germany.
- Finally backend for frontend
- - Vue has \"components\" each mainpage is one, but later other parts of the website may be components (buttons, inputs, pager, posts etc....)
- - These components may be bundled and can be loaded on demand, this can be done by the frontend, by loading the components.
- - Webpack is a software which analyzes the source code on the server and bundles it as well as processes it. That way components can be bundled and provided. Additional this provides a fancy way to define components in single files. The code to load components will be generated by Webpack. Yay, less programming less mistakes.
- Transfered everything to new backend
- - With the new backend a new website structure has been created. The old pages had been transfered to the correct positions in the new backend.
- - Now that the backend is working, the frontend may be developed.
- Update for the devblog
- - The Development Blog got a new \"design\" and finally an update to its content.
- - One variable holds all the entries and will be parsed into a Vue entries array which are automatically visible when added.
- Update introductions
- - Startpage and Devblog have been rewritten
- ';
- $t = explode("\n", $blog);
- $entries = [];
- $entry['title'] = trim($t[1]);
- for ($i = 2; $i < sizeof($t) - 1; $i++) {
- $line = trim($t[$i]);
- if($line === '') {
- continue;
- }
- if($line[0] === '-') {
- $line = trim(substr($line, 1));
- $entry['paragraphs'][] = $line;
- } else {
- $entries[] = $entry;
- $entry['paragraphs'] = [];
- $entry['title'] = $line;
- }
- }
- return $response->withJson($entries);
- }
- public static function getRoutes(): array {
- return [
- new Route('GET', '/soos', 'soos'),
- new Route('GET', '/error', 'error'),
- new Route('GET', '/devblog', 'devblog'),
- ];
- }
- }
|