mosbth on master
Upgrade dbwebb gui (compare)
mosbth on master
Enable inspect for kmom10 (compare)
mosbth on master
Fix that phpdoc works again by … (compare)
$app/$di
. https://github.com/dbwebb-se/oophp/tree/master/example/redovisa/config/di, nåt i stil med $res = $app->textfilter->getUntilMore($text)
phpinfo()
för att dubbelkolla att PDO finns på plats. https://github.com/dbwebb-se/oophp/blob/master/example/utility/phpinfo.php
Jag får inte mina tester som inbegriper databas att fungera, får detta för alla testfall, vad har jag missat? Jag har gjord $di->set("app", $app); i setUp().
´´´
1) Ssg\Product\ProductControllerTest::testIndexAction
Anax\DI\Exception\Exception: Could not load service 'db'.Failed in the callback that instantiates the service. Undefined index: SERVER_NAME
C:\cygwin64\home\46703\dbwebb-kurser\oophp\me\kmom10\proj\vendor\anax\di\src\DI\DI.php:72
C:\cygwin64\home\46703\dbwebb-kurser\oophp\me\kmom10\proj\vendor\anax\di\src\DI\DI.php:49
C:\cygwin64\home\46703\dbwebb-kurser\oophp\me\kmom10\proj\vendor\anax\di\src\DI\DIMagicTrait.php:23
C:\cygwin64\home\46703\dbwebb-kurser\oophp\me\kmom10\proj\test\Product\ProductControllerTest.php:40
´´´
config/database.php
i kursrepot, se https://github.com/dbwebb-se/oophp/blob/master/example/redovisa/config/database_sample.php#L17-L19
@mosbth Försöker skriva tester till mina kontroller klasser men får ett fel relaterat till databasens config. Min kontroller jag försöker testa ser ut så här
public function indexAction() : object
{
$title = "Blogg";
$content = new Content();
// Get incoming
$route = getGet("route", "");
// General variabels (available to the views)
$db = $this->app->db;
$db->connect();
// $titleExtended = " | My Content Database";
$content->handleRoute($route, $db);
$view = $content->getViews();
$data = $content->getData();
$title = $content->getTitle();
// Render the page
$this->app->page->add("content/header");
foreach ($view as $value) {
$this->app->page->add($value, $data);
}
return $this->app->page->render([
"title" => $title,
]);
}
Mitt test ser ut så här
protected function setUp(): void
{
// Init service container $di to contain $app as a service
$di = new DIMagic();
$di->loadServices(ANAX_INSTALL_PATH . "/config/di");
$app = $di;
$di->set("app", $app);
// Create and initiate the controller
$this->controller = new ContentController();
$this->controller->setApp($app);
// $this->controller->initialize();
}
/**
* Call the controller index action.
*/
public function testIndexAction()
{
$res = $this->controller->indexAction();
$this->assertInstanceOf(ResponseUtility::class, $res);
}
Jag får detta felet
1) Marty\Content\ContentControllerTest::testIndexAction
Error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
/mnt/c/users/marti/dbwebb-kurser/oophp/me/kmom10/proj/config/database.php:44
/mnt/c/users/marti/dbwebb-kurser/oophp/me/kmom10/proj/vendor/anax/configure/src/Configure/Configuration.php:137
/mnt/c/users/marti/dbwebb-kurser/oophp/me/kmom10/proj/config/di/db.php:15
/mnt/c/users/marti/dbwebb-kurser/oophp/me/kmom10/proj/vendor/anax/di/src/DI/DI.php:70
/mnt/c/users/marti/dbwebb-kurser/oophp/me/kmom10/proj/vendor/anax/di/src/DI/DI.php:49
/mnt/c/users/marti/dbwebb-kurser/oophp/me/kmom10/proj/vendor/anax/di/src/DI/DIMagicTrait.php:23
/mnt/c/users/marti/dbwebb-kurser/oophp/me/kmom10/proj/src/Content/ContentController.php:35
/mnt/c/users/marti/dbwebb-kurser/oophp/me/kmom10/proj/test/Content/ContentControllerTest.php:45
Någon idè?
$ php -m | grep PDO
PDO
$ php -m | grep pdo
pdo_mysql
pdo_sqlite
config/page.php
och skriva din egen. Du kan använda den som finns och skriva CSS för att den skall fungera annorlunda (bredden på dess tre regioner, om alla regionerna syns eller inte).
When I mount homepage controller on "/", then om.md and markdown files are not working , instead they look for homepage controller
Ja, den första matchande kontroller/action får alltid möjligheten att hantera requesten.
Om du lägger en kontroller på "", innan din flatfile/md-kontroller, så kommer den alltid att matchas.
Men, en kontroller kan välja att returnera ett responseobjekt, eller inte.
Om en kontroller/action returnerar "null" så kommer routern gå vidare i kedjan och välja nästa som matchar.
Man kan alltså lägga en kontroller före, och välja att returnera null, tex via catchAll()-metoden som returnerar null. På det viset kan man ha flera kontrollers/actions på samma monteringspunkt.
Är du med på resonemanget?
Gör isåfall ett försök, publicera till studentservern - så kan jag hjälp aom du inte når hela vägen fram.