PHP Tek/JS 2026 - PHP Tek/JS 2026 cover image

PHP Tek/JS 2026 - PHP Tek/JS 2026

Scott Keck-Warren • May 19, 2026

These are my raw notes from PHP Tek/JS 2026 Day 1

The Trust Protocol: Securing Code, Culture, and Collaboration - Nia Luckey

Strategies for Successful Code Review - Andy Snell

Equation to Animation: Crafting Dynamic Math Visuals on the Web - Courtney Yatteau

Building Resilient PHP Applications with an Event-Driven Mindset - Savio Resende

Bridge the Testing Gap: Mastering BDD with Codeception for Cross-Team Success - Alena Holligan

$this->amOnPage('/en/login');
$this->see('Secure Sign in', 'legend');
$this->fillField('#username', $username);
$this->fillField('#password', 'kitten');
$this->click('Sign in');
$this->amOnPage('/en/blog');
$this->see($name, '.nav-link');
@failures
Feature: unauthenticated
  In order to maintain security
  As a casual browser
  I must be redirected to login before any modifications

  Scenario Outline: redirect not logged in
    Given I am not logged in
    When I try to view <page>
    Then I should be redirected to "login"
    Examples:
      | page |
      | "/en/admin/post/" |
      | "/en/admin/post/1/" |
      | "/en/admin/post/1/edit/" |

  Scenario Outline: user does not have access
    Given I am logged in as user
    When I try to view <page>
    Then I should receive error <error>
    Examples:
      | page | error |
      | "/en/admin/post/" | "Access Denied" |
      | "/en/admin/post/1/" | "Access Denied" |
      | "/en/admin/post/1/edit/" | "Access Denied" |
      | "/en/admin/" | "No route found" |
      | "/en/admin/post/1/delete" | "No route found" |
Feature: manageArticles
  In order to maintain our blog
  As an admin
  I need to manage articles

  Background:
    Given I am logged in as admin

  Scenario: admin can addArticles
    Then I should be able to add an article

  Scenario: admin can delete an article
    Then I should be able to delete an article
$id = $this->haveInDatabase('symfony_demo_post', [
    'author_id' => 1,
    'title' => 'test delete',
    'slug' => 'test-delete',
    'summary' => 'test delete summary',
    'content' => 'test delete content',
    'published_at' => date('Y-m-d H:i:s'),
]);
$this->seeInDatabase('symfony_demo_post', ['id' => $id]);
$this->amOnPage('/en/admin/post/' . $id);
$this->see('test delete', 'h1');
$this->submitForm('#delete-form', []);

$this->dontSeeInDatabase('symfony_demo_post', ['id' => $id]);