2798 hands-on tasks to practice real job skills - earn XP, build a track record, get noticed for internships.
Type the command to list every PHP extension currently enabled.
Type the command to regenerate the autoload files after adding new classes under an existing PSR-4 namespace.
Type the command to update all dependencies to the newest versions allowed by composer.json's constraints.
Type the command to check composer.json for syntax and structural errors.
Type the command to show the installed version and details of the monolog/monolog package.
Type the command to run the project's test suite using the local PHPUnit binary installed via Composer.
Type the command to print the full PHP configuration (equivalent of phpinfo()) from the CLI.
Type the command to show which php.ini configuration file PHP is currently using.
Pick the correct explanation of how duplicate numeric keys are handled differently.
Pick the correct outcome for a function parameter passed by reference.
Pick the correct distinction between an abstract class and an interface.
Pick the correct effect of marking a class or method as final.
Pick the correct explanation of variable capture in an anonymous function.
Pick the correct distinction between PHP's match expression and a switch statement.
Pick the correct behavior of a static property across multiple object instances.
Pick the correct requirement for Composer's PSR-4 autoloading to find a class automatically.
Read a chart comparing execution time of building 100,000 strings with '.' concatenation versus sprintf().
Read a line chart of OPcache hit ratio across a day and identify when it dropped.
Read a chart comparing the byte size of the same array encoded with json_encode() versus serialize().
Read a line chart of total session storage size across a week and identify unusual growth.
Read a chart comparing execution time of array_map() versus a manual foreach loop building a new array.
Read a chart comparing execution time for a simple substring check using strpos() versus preg_match().
Read a chart comparing autoloader boot time on a cold cache versus a warm, optimized autoloader.
Read a chart comparing the same benchmark script's execution time across PHP 7.4, 8.0, and 8.2.
Read a chart comparing peak memory used by array_filter() versus a generator-based filter over a large dataset.
Find the line where a loose check misinterprets a valid index of 0 as 'not found'.
Find the line where a function is expected to mutate the caller's array but can't, because PHP arrays are passed by value.
Find the line where checking a nested array key throws a warning because a parent key doesn't exist.
Find the line where a typed property is used before being initialized, causing an error.
Find the line where a closure fails to reference an outer-scope variable because 'use' was omitted.
Find the missing piece causing a recursive factorial function to recurse forever and hit a stack limit.
Find the line where string input from a form is used in arithmetic without validation, risking unexpected results.
Write the PHP expression that sums all values in $numbers using array_reduce.
Write the PHP expression that removes every non-digit character from a phone number string.
Write the PHP expression that sorts an array of associative arrays $people by their 'age' key ascending.
Write the PHP closure expression that increments an outer $total variable each time it's called, using use (&...).
Write the PHP match expression that returns a human-readable label for a numeric $status code (1, 2, or default 'Unknown').
Write the PHP expression that merges $defaults and $overrides into a new array using the spread operator, with $overrides taking precedence.
Write the PHP expression that checks whether $logger implements the Psr\Log\LoggerInterface.
A Manager class extends Employee. Order what happens when 'new Manager()' runs and its constructor calls parent::__construct().
Order the steps of using PHP sessions to remember a logged-in user across requests.
Order the steps of accessing a static counter property that increments every time a new object is created.
Order the conceptual steps of how preg_match applies a regular expression to a string.
Order the internal steps PHP takes when evaluating '0' == false with the loose == operator.
Read a chart comparing offset pagination vs cursor pagination query time as page number increases.
Find the line that leaves the model vulnerable to mass assignment of unintended fields.
Find the line where the relationship method is backwards for the schema.
Find the line where the route parameter name doesn't match the controller's type-hinted variable, breaking implicit binding.
Find the line that renders untrusted user content without escaping, opening an XSS hole.
Find the line with a cast type that won't behave like a Carbon instance.
Find the line calling an Eloquent Collection method as if it were a plain PHP array function.
Write the Eloquent expression that returns each category with its post count using withCount.
Write the Eloquent expression that eager loads a post's comments along with each comment's author, in one query chain.
Write the Eloquent expression that returns only posts that have at least one comment.
Write the Eloquent expression that finds a Tag by name or creates it if it doesn't exist.
Write the Eloquent expression that updates a Setting's value for a given key, or creates it if the key doesn't exist yet.
Write the Eloquent expression that calls a defined scopePublished() local scope on the Post model.
Write the factory expression that creates one Post along with 3 related Comments in one call.
Write the Eloquent expression that filters posts by category only when a $category variable is not null.
Read a chart of log entries by severity level over the last 24 hours and assess app health.
Read a chart of execution time for common Artisan commands and identify the slowest one during deploys.
Type the command to undo the most recently run batch of migrations.
Type the command to generate a new middleware class called CheckSubscriptionActive.
Type the command to generate a Form Request class named StorePostRequest.
Type the command to run only the PostSeeder class, without re-running the whole DatabaseSeeder.
Type the command to start a worker that processes jobs from the default queue.
Type the command to generate a new job class named SendWelcomeEmail.
Pick the correct fix for a classic Eloquent performance issue.
Pick the correct purpose of a service provider.
Pick the correct query for filtering parent records by a related model's condition.
Pick the correct validation rule for an email field on a profile update form.
Pick the correct reason to use Laravel API Resources.
Pick the correct next step when a queued job keeps failing.
Pick the correct distinction between an Eloquent accessor and a mutator.
Pick the correct description of how Laravel typically stores session state.
Read a chart of query counts per page and identify the page suffering from an N+1 problem.
Read a chart of jobs processed per minute at different worker counts and pick the best worker count for the target throughput.
Read a chart comparing query execution time on a large table with and without an index.
Read a chart of HTTP status code counts over the last hour and identify the dominant problem.
Read a line chart of daily cache hit ratio and identify the day it dropped significantly.
Arrange the stages a Laravel HTTP request passes through, in the correct order.
Order the sequence of events when a StoreOrderRequest is used on a controller method.
Arrange the steps from dispatching a job to it finishing successfully.
Order the steps from an Eloquent query to a transformed JSON API response using API Resources.
Order the steps for writing and running a Pest/PHPUnit feature test for a POST endpoint.
Order the logical steps of a DB::transaction() closure that transfers funds between two accounts.