From 5e0606590ebd9cd1e5ce84003c3dd9b91ce84041 Mon Sep 17 00:00:00 2001 From: Michael Woodward Date: Sun, 20 Nov 2022 00:40:15 +0000 Subject: [PATCH 1/9] WIP adding common langauge to problem files --- composer.json | 1 + composer.lock | 306 ++++++++++-------- exercises/baby-steps/problem/problem.md | 5 +- .../problem/problem.md | 9 +- .../dependency-heaven/problem/problem.md | 6 + .../exceptional-coding/problem/problem.md | 3 +- exercises/filtered-ls/problem/problem.md | 9 +- exercises/hello-world/problem/problem.md | 16 +- exercises/http-json-api/problem/problem.md | 8 +- exercises/my-first-io/problem/problem.md | 3 +- exercises/time-server/problem/problem.md | 9 +- 11 files changed, 208 insertions(+), 167 deletions(-) diff --git a/composer.json b/composer.json index b851a18..b0b8810 100644 --- a/composer.json +++ b/composer.json @@ -5,6 +5,7 @@ "homepage": "https://www.phpschool.io", "license": "MIT", "type": "php-school-workshop", + "minimum-stability": "dev", "authors": [ { "name": "Aydin Hassan", diff --git a/composer.lock b/composer.lock index 88cdd8c..c2b436e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "57d1c979e3eefb0bba24687f6eaacf9b", + "content-hash": "2b299b4104c22e211b3b9742180d8b08", "packages": [ { "name": "beberlei/assert", @@ -75,16 +75,16 @@ }, { "name": "fakerphp/faker", - "version": "v1.21.0", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d" + "reference": "abc97b54a6c82bc276b261f67c560aed79f26ecd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d", - "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/abc97b54a6c82bc276b261f67c560aed79f26ecd", + "reference": "abc97b54a6c82bc276b261f67c560aed79f26ecd", "shasum": "" }, "require": { @@ -109,6 +109,7 @@ "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", "ext-mbstring": "Required for multibyte Unicode string functionality." }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -137,22 +138,22 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0" + "source": "https://github.com/FakerPHP/Faker/tree/main" }, - "time": "2022-12-13T13:54:32+00:00" + "time": "2023-02-02T09:20:13+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.5.0", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" + "reference": "8459341c16f96b9610dcdfe22bd3060d60c0da04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", - "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/8459341c16f96b9610dcdfe22bd3060d60c0da04", + "reference": "8459341c16f96b9610dcdfe22bd3060d60c0da04", "shasum": "" }, "require": { @@ -178,6 +179,7 @@ "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, + "default-branch": true, "type": "library", "extra": { "bamarni-bin": { @@ -251,7 +253,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.5.0" + "source": "https://github.com/guzzle/guzzle/tree/master" }, "funding": [ { @@ -267,11 +269,11 @@ "type": "tidelift" } ], - "time": "2022-08-28T15:39:27+00:00" + "time": "2022-08-29T11:03:19+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.5.2", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", @@ -289,6 +291,7 @@ "require-dev": { "symfony/phpunit-bridge": "^4.4 || ^5.1" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -355,16 +358,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.4.3", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "67c26b443f348a51926030c83481b85718457d3d" + "reference": "ddb46aeea6423f504136cff6989ae39064301eef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d", - "reference": "67c26b443f348a51926030c83481b85718457d3d", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/ddb46aeea6423f504136cff6989ae39064301eef", + "reference": "ddb46aeea6423f504136cff6989ae39064301eef", "shasum": "" }, "require": { @@ -385,6 +388,7 @@ "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, + "default-branch": true, "type": "library", "extra": { "bamarni-bin": { @@ -454,7 +458,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.3" + "source": "https://github.com/guzzle/psr7/tree/master" }, "funding": [ { @@ -470,7 +474,7 @@ "type": "tidelift" } ], - "time": "2022-10-26T14:07:24+00:00" + "time": "2022-12-27T19:02:55+00:00" }, { "name": "kevinlebrun/colors.php", @@ -529,16 +533,16 @@ }, { "name": "laravel/serializable-closure", - "version": "v1.3.0", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37" + "reference": "8746f27d79cb4412907b3e42f7d6a5e0630c0463" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", - "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/8746f27d79cb4412907b3e42f7d6a5e0630c0463", + "reference": "8746f27d79cb4412907b3e42f7d6a5e0630c0463", "shasum": "" }, "require": { @@ -550,6 +554,7 @@ "phpstan/phpstan": "^1.8.2", "symfony/var-dumper": "^5.4.11" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -585,20 +590,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2023-01-30T18:31:20+00:00" + "time": "2023-01-31T15:54:08+00:00" }, { "name": "league/commonmark", - "version": "1.6.7", + "version": "1.6.x-dev", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b" + "reference": "b7a2aedcca80659fac31b92f525b7837b15d45aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/2b8185c13bc9578367a5bf901881d1c1b5bbd09b", - "reference": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b7a2aedcca80659fac31b92f525b7837b15d45aa", + "reference": "b7a2aedcca80659fac31b92f525b7837b15d45aa", "shasum": "" }, "require": { @@ -678,7 +683,7 @@ "type": "tidelift" } ], - "time": "2022-01-13T17:18:13+00:00" + "time": "2022-01-13T17:17:14+00:00" }, { "name": "myclabs/php-enum", @@ -745,7 +750,7 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.3", + "version": "4.x-dev", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", @@ -765,6 +770,7 @@ "ircmaxell/php-yacc": "^0.0.7", "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, + "default-branch": true, "bin": [ "bin/php-parse" ], @@ -856,7 +862,7 @@ }, { "name": "php-di/php-di", - "version": "6.4.0", + "version": "6.4.x-dev", "source": { "type": "git", "url": "https://github.com/PHP-DI/PHP-DI.git", @@ -1085,7 +1091,7 @@ }, { "name": "php-school/keylighter", - "version": "0.8.4", + "version": "0.8.x-dev", "source": { "type": "git", "url": "https://github.com/php-school/KeyLighter.git", @@ -1107,6 +1113,7 @@ "suggest": { "symfony/console": "Allows usage of keylighters CLI utility." }, + "default-branch": true, "bin": [ "bin/keylighter" ], @@ -1278,7 +1285,7 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", @@ -1326,22 +1333,23 @@ }, { "name": "psr/http-client", - "version": "1.0.1", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + "reference": "22b2ef5687f43679481615605d7a15c557ce85b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/22b2ef5687f43679481615605d7a15c557ce85b1", + "reference": "22b2ef5687f43679481615605d7a15c557ce85b1", "shasum": "" }, "require": { "php": "^7.0 || ^8.0", "psr/http-message": "^1.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1360,7 +1368,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP clients", @@ -1374,26 +1382,27 @@ "support": { "source": "https://github.com/php-fig/http-client/tree/master" }, - "time": "2020-06-29T06:28:15+00:00" + "time": "2020-09-19T09:12:31+00:00" }, { "name": "psr/http-factory", - "version": "1.0.1", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + "reference": "5a4f141ac2e5bc35e615134f127e1833158d2944" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/5a4f141ac2e5bc35e615134f127e1833158d2944", + "reference": "5a4f141ac2e5bc35e615134f127e1833158d2944", "shasum": "" }, "require": { "php": ">=7.0.0", "psr/http-message": "^1.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1412,7 +1421,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interfaces for PSR-7 HTTP message factories", @@ -1429,25 +1438,26 @@ "support": { "source": "https://github.com/php-fig/http-factory/tree/master" }, - "time": "2019-04-30T12:38:16+00:00" + "time": "2022-07-14T07:21:53+00:00" }, { "name": "psr/http-message", - "version": "1.0.1", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", + "reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", "shasum": "" }, "require": { "php": ">=5.3.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1482,7 +1492,7 @@ "support": { "source": "https://github.com/php-fig/http-message/tree/master" }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2019-08-29T13:16:46+00:00" }, { "name": "psr/log", @@ -1580,7 +1590,7 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v3.2.0", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", @@ -1595,6 +1605,7 @@ "require": { "php": ">=8.1" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1647,16 +1658,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.2.5", + "version": "6.3.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593" + "reference": "547514db3e8d36c6e03457d32cf37decfb1f6127" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/e59e8a4006afd7f5654786a83b4fcb8da98f4593", - "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/547514db3e8d36c6e03457d32cf37decfb1f6127", + "reference": "547514db3e8d36c6e03457d32cf37decfb1f6127", "shasum": "" }, "require": { @@ -1690,7 +1701,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.2.5" + "source": "https://github.com/symfony/filesystem/tree/6.3" }, "funding": [ { @@ -1706,20 +1717,20 @@ "type": "tidelift" } ], - "time": "2023-01-20T17:45:48+00:00" + "time": "2023-02-02T07:48:03+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -1731,10 +1742,11 @@ "suggest": { "ext-ctype": "For best performance" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1772,7 +1784,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/main" }, "funding": [ { @@ -1788,20 +1800,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "f9c7affe77a00ae32ca127ca6833d034e6d33f25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f9c7affe77a00ae32ca127ca6833d034e6d33f25", + "reference": "f9c7affe77a00ae32ca127ca6833d034e6d33f25", "shasum": "" }, "require": { @@ -1813,10 +1825,11 @@ "suggest": { "ext-mbstring": "For best performance" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1855,7 +1868,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/main" }, "funding": [ { @@ -1871,20 +1884,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-30T17:25:47+00:00" }, { "name": "symfony/process", - "version": "v6.2.5", + "version": "6.3.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7" + "reference": "5e6dd40d75b48692363fe51db28cf8169b617e39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/9ead139f63dfa38c4e4a9049cc64a8b2748c83b7", - "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7", + "url": "https://api.github.com/repos/symfony/process/zipball/5e6dd40d75b48692363fe51db28cf8169b617e39", + "reference": "5e6dd40d75b48692363fe51db28cf8169b617e39", "shasum": "" }, "require": { @@ -1916,7 +1929,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.2.5" + "source": "https://github.com/symfony/process/tree/6.3" }, "funding": [ { @@ -1932,22 +1945,22 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:38:09+00:00" + "time": "2023-02-02T07:48:03+00:00" } ], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "2.0.0", + "version": "2.0.x-dev", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" + "reference": "d6eef505a6c46e963e54bf73bb9de43cdea70821" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d6eef505a6c46e963e54bf73bb9de43cdea70821", + "reference": "d6eef505a6c46e963e54bf73bb9de43cdea70821", "shasum": "" }, "require": { @@ -1963,6 +1976,7 @@ "phpunit/phpunit": "^9.5.27", "vimeo/psalm": "^5.4" }, + "default-branch": true, "type": "library", "autoload": { "psr-4": { @@ -1988,7 +2002,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" + "source": "https://github.com/doctrine/instantiator/tree/2.0.x" }, "funding": [ { @@ -2004,11 +2018,11 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:23:10+00:00" + "time": "2023-01-04T15:42:40+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.0", + "version": "1.x-dev", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", @@ -2032,6 +2046,7 @@ "doctrine/common": "^2.13.3 || ^3.2.2", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, + "default-branch": true, "type": "library", "autoload": { "files": [ @@ -2067,25 +2082,27 @@ }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "36d8a21e851a9512db2b086dc5ac2c61308f0138" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/36d8a21e851a9512db2b086dc5ac2c61308f0138", + "reference": "36d8a21e851a9512db2b086dc5ac2c61308f0138", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", "php": "^7.2 || ^8.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -2121,9 +2138,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/master" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2022-02-21T19:55:33+00:00" }, { "name": "phar-io/version", @@ -2178,16 +2201,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.9.14", + "version": "1.10.x-dev", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "e5fcc96289cf737304286a9b505fbed091f02e58" + "reference": "f9f7d4a0714c8356ebe3a14e328a0a6dc778d454" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e5fcc96289cf737304286a9b505fbed091f02e58", - "reference": "e5fcc96289cf737304286a9b505fbed091f02e58", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/f9f7d4a0714c8356ebe3a14e328a0a6dc778d454", + "reference": "f9f7d4a0714c8356ebe3a14e328a0a6dc778d454", "shasum": "" }, "require": { @@ -2196,6 +2219,7 @@ "conflict": { "phpstan/phpstan-shim": "*" }, + "default-branch": true, "bin": [ "phpstan", "phpstan.phar" @@ -2217,7 +2241,7 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.9.14" + "source": "https://github.com/phpstan/phpstan/tree/1.10.x" }, "funding": [ { @@ -2233,20 +2257,20 @@ "type": "tidelift" } ], - "time": "2023-01-19T10:47:09+00:00" + "time": "2023-02-02T16:02:59+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.24", + "version": "9.2.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed" + "reference": "c1a1d8666565e8e4efa60211cadcce29909593d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2cf940ebc6355a9d430462811b5aaa308b174bed", - "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c1a1d8666565e8e4efa60211cadcce29909593d3", + "reference": "c1a1d8666565e8e4efa60211cadcce29909593d3", "shasum": "" }, "require": { @@ -2302,7 +2326,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.24" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2" }, "funding": [ { @@ -2310,20 +2334,20 @@ "type": "github" } ], - "time": "2023-01-26T08:26:55+00:00" + "time": "2023-01-30T06:35:23+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.6", + "version": "3.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + "reference": "38b24367e1b340aa78b96d7cab042942d917bb84" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/38b24367e1b340aa78b96d7cab042942d917bb84", + "reference": "38b24367e1b340aa78b96d7cab042942d917bb84", "shasum": "" }, "require": { @@ -2362,7 +2386,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0" }, "funding": [ { @@ -2370,7 +2394,7 @@ "type": "github" } ], - "time": "2021-12-02T12:48:52+00:00" + "time": "2022-02-11T16:23:04+00:00" }, { "name": "phpunit/php-invoker", @@ -2555,7 +2579,7 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.3", + "version": "9.6.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", @@ -2824,16 +2848,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.8", + "version": "4.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "reference": "b247957a1c8dc81a671770f74b479c0a78a818f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/b247957a1c8dc81a671770f74b479c0a78a818f1", + "reference": "b247957a1c8dc81a671770f74b479c0a78a818f1", "shasum": "" }, "require": { @@ -2886,7 +2910,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0" }, "funding": [ { @@ -2894,7 +2918,7 @@ "type": "github" } ], - "time": "2022-09-14T12:41:17+00:00" + "time": "2022-09-14T12:46:14+00:00" }, { "name": "sebastian/complexity", @@ -3021,7 +3045,7 @@ }, { "name": "sebastian/environment", - "version": "5.1.5", + "version": "5.1.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", @@ -3072,7 +3096,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1" }, "funding": [ { @@ -3084,7 +3108,7 @@ }, { "name": "sebastian/exporter", - "version": "4.0.5", + "version": "4.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", @@ -3149,7 +3173,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0" }, "funding": [ { @@ -3161,7 +3185,7 @@ }, { "name": "sebastian/global-state", - "version": "5.0.5", + "version": "5.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", @@ -3394,7 +3418,7 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.5", + "version": "4.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", @@ -3457,16 +3481,16 @@ }, { "name": "sebastian/resource-operations", - "version": "3.0.3", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "reference": "f7adbde0c6a1f761f9a005bda39b7fdbf2d16bad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/f7adbde0c6a1f761f9a005bda39b7fdbf2d16bad", + "reference": "f7adbde0c6a1f761f9a005bda39b7fdbf2d16bad", "shasum": "" }, "require": { @@ -3475,10 +3499,11 @@ "require-dev": { "phpunit/phpunit": "^9.0" }, + "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -3499,8 +3524,7 @@ "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/main" }, "funding": [ { @@ -3508,11 +3532,11 @@ "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2023-02-02T11:26:30+00:00" }, { "name": "sebastian/type", - "version": "3.2.1", + "version": "3.2.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", @@ -3556,7 +3580,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + "source": "https://github.com/sebastianbergmann/type/tree/3.2" }, "funding": [ { @@ -3568,7 +3592,7 @@ }, { "name": "sebastian/version", - "version": "3.0.2", + "version": "3.0.x-dev", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", @@ -3621,16 +3645,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.7.1", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" + "reference": "add95a74551c3ba8fc99ef7651ad05f553b3fbbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", - "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/add95a74551c3ba8fc99ef7651ad05f553b3fbbf", + "reference": "add95a74551c3ba8fc99ef7651ad05f553b3fbbf", "shasum": "" }, "require": { @@ -3642,6 +3666,7 @@ "require-dev": { "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, + "default-branch": true, "bin": [ "bin/phpcs", "bin/phpcbf" @@ -3666,14 +3691,15 @@ "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", "keywords": [ "phpcs", - "standards" + "standards", + "static analysis" ], "support": { "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2022-06-18T07:21:10+00:00" + "time": "2022-12-22T21:46:41+00:00" }, { "name": "theseer/tokenizer", @@ -3727,7 +3753,7 @@ } ], "aliases": [], - "minimum-stability": "stable", + "minimum-stability": "dev", "stability-flags": { "php-school/php-workshop": 20 }, diff --git a/exercises/baby-steps/problem/problem.md b/exercises/baby-steps/problem/problem.md index 36a40b3..cb7009c 100644 --- a/exercises/baby-steps/problem/problem.md +++ b/exercises/baby-steps/problem/problem.md @@ -11,6 +11,9 @@ To get started, write a program that simply contains: var_dump($argv); ``` +[//]: # (TODO: RUN?!?! e.g run on the CLI or click run in the cloud sidebar?!) +{{ run program.php 1 2 3 }} ?? !!!?!?!? + Run it with `php program.php` and some numbers as arguments. e.g: ```sh @@ -36,6 +39,6 @@ You'll need to think about how to loop through the number of arguments so you ca Also be aware that all elements of `$argv` are strings and you may need to *coerce* them into numbers. You can do this by prefixing the property with a cast `(int)` or just adding them. PHP will coerce it for you. -`{appname}` will be supplying arguments to your program when you run `{appname} verify program.php` so you don't need to supply them yourself. To test your program without verifying it, you can invoke it with `{appname} run program.php`. When you use `run`, you are invoking the test environment that `{appname}` sets up for each exercise. +{{ appname ` }} will be supplying arguments to your program when you run {{ appname ` }} `verify program.php` so you don't need to supply them yourself. To test your program without verifying it, you can invoke it with {{ appname ` }} `run program.php`. When you use `run`, you are invoking the test environment that {{ appname ` }} sets up for each exercise. ---------------------------------------------------------------------- diff --git a/exercises/concerned-about-separation/problem/problem.md b/exercises/concerned-about-separation/problem/problem.md index f0256fd..eaeb4fc 100644 --- a/exercises/concerned-about-separation/problem/problem.md +++ b/exercises/concerned-about-separation/problem/problem.md @@ -11,6 +11,7 @@ The benefit of having a contract like this is that your class can be used by any ---------------------------------------------------------------------- ## HINTS +[//]: # (TODO: create ?! ... e.g create a new file in you IDE, touch etc, or create a new file in the cloud file explorer) Create a new class by creating a new file that just contains your directory reading and filtering code in a class method. To define a *single method* *class*, use the following syntax: ```php @@ -41,12 +42,8 @@ $myFilter = new DirectoryFilter; You can then call the method you defined with its required arguments. -Documentation on class basics can be found here: +{{ doc 'class basics' en language.oop5.basic.php }} -[http://php.net/manual/en/language.oop5.basic.php]() - -Documentation on `require_once` can be found here: - -[http://php.net/manual/en/function.require-once.php]() +{{ doc require_once en function.require-once.php }} ---------------------------------------------------------------------- \ No newline at end of file diff --git a/exercises/dependency-heaven/problem/problem.md b/exercises/dependency-heaven/problem/problem.md index 28cb2e9..5d5560f 100644 --- a/exercises/dependency-heaven/problem/problem.md +++ b/exercises/dependency-heaven/problem/problem.md @@ -91,7 +91,13 @@ Finally, you will also be required to use `symfony/string` to manipulate the dat ---------------------------------------------------------------------- ## HINTS +{{ cli }} Point your browser to [https://getcomposer.org/doc/00-intro.md](https://getcomposer.org/doc/00-intro.md) which will walk you through **Installing Composer** if you haven't already! +{{ cli }} + +{{ cloud }} +Composer is installed and ready to go on cloud, user the commands tab to execute composer directly on your solution +{{ cloud }} Use `composer init` to create your `composer.json` file with interactive search. diff --git a/exercises/exceptional-coding/problem/problem.md b/exercises/exceptional-coding/problem/problem.md index 5af80ad..f93acff 100644 --- a/exercises/exceptional-coding/problem/problem.md +++ b/exercises/exceptional-coding/problem/problem.md @@ -13,7 +13,6 @@ The full path of the files to read will be provided as the command line argument You are urged to use `try... catch` logic here along with the SplFileObject contruct which throws a `RuntimeException` when a file does not exist. -Documentation on the `SplFileObject` class can be found by pointing your browser here: - [http://php.net/manual/en/class.splfileobject.php]() +{{ doc SplFileObject en class.splfileobject.php }} ---------------------------------------------------------------------- diff --git a/exercises/filtered-ls/problem/problem.md b/exercises/filtered-ls/problem/problem.md index d0eb6b3..92dd629 100644 --- a/exercises/filtered-ls/problem/problem.md +++ b/exercises/filtered-ls/problem/problem.md @@ -2,7 +2,7 @@ Create a program that prints a list of files in a given directory, filtered by t For example, if you get 'txt' as the second argument then you will need to filter the list to only files that **end with .txt**. Note that the second argument _will not_ come prefixed with a '.'. -The list of files should be printed to the console, one file per line. +The list of files should be printed out, one file per line. ---------------------------------------------------------------------- ## HINTS @@ -16,13 +16,10 @@ foreach (new DirectoryIterator('/some/path') as $file) { } ``` -Documentation on the `SplFileInfo` class can be found by pointing your browser here: - -[http://php.net/manual/en/class.splfileinfo.php]() +{{ doc SplFileInfo en class.splfileinfo.php }} You may also find `SplFileInfo`'s `getExtension()` method helpful -Documentation on the `getExtension()` method can be found by pointing your browser here: -[http://php.net/manual/en/splfileinfo.getextension.php]() +{{ doc getExtension() en splfileinfo.getextension.php }} ---------------------------------------------------------------------- \ No newline at end of file diff --git a/exercises/hello-world/problem/problem.md b/exercises/hello-world/problem/problem.md index a134d16..2b321e2 100644 --- a/exercises/hello-world/problem/problem.md +++ b/exercises/hello-world/problem/problem.md @@ -2,13 +2,18 @@ Write a program that prints the text "Hello World" to the console (stdout). ---------------------------------------------------------------------- ## HINTS - +{{ cli }} To make a PHP program, create a new file with a `.php` extension and start writing PHP! Execute your program by running it with the `php` command. e.g.: ```sh $ php program.php ``` +{{ cli }} + +{{ cloud }} +Your first solution file is waiting for you, notice the `.php` extension in it's name. We'll execute your solution file for you when you hit `Run` or `Verify`. +{{ cloud }} You can write to the console from a PHP program with the following code: @@ -20,6 +25,7 @@ echo "text"; The first line tells the PHP to interpret the code following it. It is required before any PHP code is written. Read more here: [http://php.net/manual/en/language.basic-syntax.phptags.php]() The second line is the instruction to print out some text. +{{ cli }} Place the code in to a text file using your favourite text editor, some popular editors are listed below: * Sublime Text: [https://www.sublimetext.com/]() @@ -30,13 +36,21 @@ Switch back to the terminal and run your code again with the same command as abo ```sh $ php program.php ``` +{{ cli }} + +{{ cloud }} +Try hitting the *Run* button. +{{ cloud }} +[//]: # (TODO: Contextual words ??? e.g. console <-> browser) You should see the word "text" printed out on the console. Now you must adapt the code to pass the challenge presented. Remember the challenge was: Write a program that prints the text "Hello World" to the console (stdout). We have created you a file named `hello-world.php` in your current working directory, feel free to use it! +[//]: # (TODO: Verify...) +{{ verify ... ... ... }} When you have finished and saved the file you must run the following (substituting program.php to the name of the file you created which contains your code) ```sh diff --git a/exercises/http-json-api/problem/problem.md b/exercises/http-json-api/problem/problem.md index e036861..6ac8b53 100644 --- a/exercises/http-json-api/problem/problem.md +++ b/exercises/http-json-api/problem/problem.md @@ -30,8 +30,7 @@ The `$_SERVER` super global array has a `REQUEST_URI` property that you will nee You can parse the URL using the global `parse_url` function. The result will be an array of helpful properties. You can access the query string properties via the `$_GET` super global array. -Documentation on the `parse_url` function can be found by pointing your browser here: - [http://php.net/manual/en/function.parse-url.php]() +{{ doc parse_url en function.parse-url.php }} Your response should be in a JSON string format. Look at `json_encode` for more information. @@ -42,7 +41,8 @@ header('Content-Type: application/json'); ``` The PHP `DateTime` object can print dates as a UNIX timestamp, e.g. `(new \DateTime())->format('U');`. It can also parse this format if you pass the string into the `\DateTime` constructor. The various parameters to `format()` will also -come in handy. You can find the documentation here: - [http://php.net/manual/en/class.datetime.php]() +come in handy. + +{{ doc DateTime en class.datetime.php}} ---------------------------------------------------------------------- diff --git a/exercises/my-first-io/problem/problem.md b/exercises/my-first-io/problem/problem.md index 9ba2fc3..edcfef4 100644 --- a/exercises/my-first-io/problem/problem.md +++ b/exercises/my-first-io/problem/problem.md @@ -9,8 +9,7 @@ To perform a filesystem operation you can use the global PHP functions. To read a file, you'll need to use `file_get_contents('/path/to/file')`. This method will *return* a `string` containing the complete contents of the file. -Documentation on the `file_get_contents` function can be found by pointing your browser here: - [http://php.net/manual/en/function.file-get-contents.php]() +{{ doc file_get_contents en function.file-get-contents.php }} If you're looking for an easy way to count the number of newlines in a string, recall the PHP function `substr_count` can be used to count the number of substring occurrences. diff --git a/exercises/time-server/problem/problem.md b/exercises/time-server/problem/problem.md index 97286cf..2908c7c 100644 --- a/exercises/time-server/problem/problem.md +++ b/exercises/time-server/problem/problem.md @@ -41,12 +41,11 @@ You can read and write to the socket by using `socket_read` and `socket_write`. Use `socket_write($client, $data, strlen($data))` to write data to the socket and then `socket_close($socket)` to close the socket. -Documentation on PHP streams can be found by pointing your browser here: - [http://php.net/manual/en/sockets.examples.php]() - [http://php.net/manual/en/function.stream-socket-server.php]() +{{ doc 'PHP streams' en sockets.examples.php function.stream-socket-server.php }} To create the date you'll need to create a custom format from the PHP `DateTime` object. The various parameters to `format()` will -help you. You can find the documentation here: - [http://php.net/manual/en/class.datetime.php]() +help you. + +{{ doc DateTime en class.datetime.php }} ---------------------------------------------------------------------- From ad0268d5df94981829979bc621319a4e9e230ee8 Mon Sep 17 00:00:00 2001 From: Aydin Hassan Date: Sat, 28 Jan 2023 16:49:26 +0100 Subject: [PATCH 2/9] updates --- exercises/hello-world/problem/problem.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/exercises/hello-world/problem/problem.md b/exercises/hello-world/problem/problem.md index 2b321e2..c59a259 100644 --- a/exercises/hello-world/problem/problem.md +++ b/exercises/hello-world/problem/problem.md @@ -39,7 +39,7 @@ $ php program.php {{ cli }} {{ cloud }} -Try hitting the *Run* button. +Try hitting the *Run* button to execute your program. {{ cloud }} [//]: # (TODO: Contextual words ??? e.g. console <-> browser) @@ -47,7 +47,9 @@ You should see the word "text" printed out on the console. Now you must adapt the code to pass the challenge presented. Remember the challenge was: Write a program that prints the text "Hello World" to the console (stdout). +{{ cli }} We have created you a file named `hello-world.php` in your current working directory, feel free to use it! +{{ cli }} [//]: # (TODO: Verify...) {{ verify ... ... ... }} @@ -57,6 +59,14 @@ When you have finished and saved the file you must run the following (substituti $ {appname} verify program.php ``` +When you have finished editing your program {cli}and saved the file{cli} you must verify your program. + +{{ verify program.php }} + +{{ cli }} +Don't forget to substitute program.php for the name of the file you created which contains your code. +{{ cli }} + to proceed. Your program will be tested, a report will be generated, and the lesson will be marked 'completed' if you are successful. ---------------------------------------------------------------------- From b63c8f8e97b0fe9742bdbaddefad1e6e88900ab6 Mon Sep 17 00:00:00 2001 From: Aydin Hassan Date: Mon, 30 Jan 2023 22:08:16 +0100 Subject: [PATCH 3/9] More cloud updates --- exercises/baby-steps/problem/problem.md | 17 +++++++--- .../problem/problem.md | 3 +- exercises/database-read/problem/problem.md | 4 +-- .../dependency-heaven/problem/problem.md | 8 ++--- .../exceptional-coding/problem/problem.md | 2 +- exercises/hello-world/problem/problem.md | 33 ++++++++++--------- exercises/http-json-api/problem/problem.md | 4 ++- exercises/time-server/problem/problem.md | 2 +- 8 files changed, 42 insertions(+), 31 deletions(-) diff --git a/exercises/baby-steps/problem/problem.md b/exercises/baby-steps/problem/problem.md index cb7009c..33b8c88 100644 --- a/exercises/baby-steps/problem/problem.md +++ b/exercises/baby-steps/problem/problem.md @@ -11,15 +11,19 @@ To get started, write a program that simply contains: var_dump($argv); ``` -[//]: # (TODO: RUN?!?! e.g run on the CLI or click run in the cloud sidebar?!) -{{ run program.php 1 2 3 }} ?? !!!?!?!? - +{{ cli }} Run it with `php program.php` and some numbers as arguments. e.g: ```sh $ php program.php 1 2 3 ``` +{{ cli }} + +{{ cloud }} +Run it by pressing the Run button in the editor. +{{ cloud }} + In which case the output would be an array looking something like: ```php @@ -39,6 +43,11 @@ You'll need to think about how to loop through the number of arguments so you ca Also be aware that all elements of `$argv` are strings and you may need to *coerce* them into numbers. You can do this by prefixing the property with a cast `(int)` or just adding them. PHP will coerce it for you. -{{ appname ` }} will be supplying arguments to your program when you run {{ appname ` }} `verify program.php` so you don't need to supply them yourself. To test your program without verifying it, you can invoke it with {{ appname ` }} `run program.php`. When you use `run`, you are invoking the test environment that {{ appname ` }} sets up for each exercise. +{{ cli }} +{{ appname }} will be supplying arguments to your program when you run `{{ appname }} verify program.php` so you don't need to supply them yourself. To test your program without verifying it, you can invoke it with `{{ appname }} run program.php`. When you use `run`, you are invoking the test environment that {{ appname }} sets up for each exercise. +{{ cli }} +{{ cloud }} +PHP school will be supplying arguments to your program when you click Verify in the editor. To test your program without verifying it, you can just invoke it by pressing the Run button in the editor. When you press Run, you are invoking the test environment that PHP School sets up for each exercise. +{{ cloud }} ---------------------------------------------------------------------- diff --git a/exercises/concerned-about-separation/problem/problem.md b/exercises/concerned-about-separation/problem/problem.md index eaeb4fc..5450724 100644 --- a/exercises/concerned-about-separation/problem/problem.md +++ b/exercises/concerned-about-separation/problem/problem.md @@ -6,12 +6,11 @@ You must write a *class* file to do most of the work. The file must *define* a s You **must** not print directly to the console from your class, only from your original program. -The benefit of having a contract like this is that your class can be used by anyone who expects this contract. So your class could be used by anyone else who does learnyouphp, or the verifier, and just work. +The benefit of having a contract like this is that your class can be used by anyone who expects this contract. So your class could be used by anyone else who attempts this exercise, or the verifier, and just work. ---------------------------------------------------------------------- ## HINTS -[//]: # (TODO: create ?! ... e.g create a new file in you IDE, touch etc, or create a new file in the cloud file explorer) Create a new class by creating a new file that just contains your directory reading and filtering code in a class method. To define a *single method* *class*, use the following syntax: ```php diff --git a/exercises/database-read/problem/problem.md b/exercises/database-read/problem/problem.md index 1785a6b..bb086ee 100644 --- a/exercises/database-read/problem/problem.md +++ b/exercises/database-read/problem/problem.md @@ -4,7 +4,7 @@ Display the information of all the users in the database table `users` whose age `User: Jim Morrison Age: 27 Sex: male` -Finally you will be given a random name as the second argument to your program, you should update the row in the `users` table which corresponds to this name. You should change the name to `David Attenborough`. +Finally, you will be given a random name as the second argument to your program, you should update the row in the `users` table which corresponds to this name. You should change the name to `David Attenborough`. ---------------------------------------------------------------------- ## HINTS @@ -40,7 +40,7 @@ foreach ($pdo->query('SELECT * FROM users') as $row) { } ``` -`$row` is now an array of data. The key will be the columns and the value is the database value +`$row` is now an array of data. The key will be the column name and the value is the database value You should use prepared statements to perform the updating. You should be most interested in the `prepare` and `execute` methods. diff --git a/exercises/dependency-heaven/problem/problem.md b/exercises/dependency-heaven/problem/problem.md index 5d5560f..3853c37 100644 --- a/exercises/dependency-heaven/problem/problem.md +++ b/exercises/dependency-heaven/problem/problem.md @@ -93,13 +93,13 @@ Finally, you will also be required to use `symfony/string` to manipulate the dat {{ cli }} Point your browser to [https://getcomposer.org/doc/00-intro.md](https://getcomposer.org/doc/00-intro.md) which will walk you through **Installing Composer** if you haven't already! + +Use `composer init` to create your `composer.json` file with interactive search. {{ cli }} {{ cloud }} -Composer is installed and ready to go on cloud, user the commands tab to execute composer directly on your solution -{{ cloud }} - -Use `composer init` to create your `composer.json` file with interactive search. +Composer is installed and ready to go on cloud, use the Composer Deps button in the editor to search for and install your dependencies. While you should read the documentation for [Composer](https://getcomposer.org/doc/00-intro.md), it's important to note that the way we manage dependencies on PHP School cloud, is not how you would manage them in your own projects. We abstract away the `composer.json` file to keep it simple. +{{ cloud }} For more details look at the docs for... diff --git a/exercises/exceptional-coding/problem/problem.md b/exercises/exceptional-coding/problem/problem.md index f93acff..26fd657 100644 --- a/exercises/exceptional-coding/problem/problem.md +++ b/exercises/exceptional-coding/problem/problem.md @@ -11,7 +11,7 @@ The full path of the files to read will be provided as the command line argument ---------------------------------------------------------------------- ## HINTS -You are urged to use `try... catch` logic here along with the SplFileObject contruct which throws a `RuntimeException` when a file does not exist. +You are urged to use `try... catch` logic here along with the `SplFileObject` contruct which throws a `RuntimeException` when a file does not exist. {{ doc SplFileObject en class.splfileobject.php }} diff --git a/exercises/hello-world/problem/problem.md b/exercises/hello-world/problem/problem.md index c59a259..19d0829 100644 --- a/exercises/hello-world/problem/problem.md +++ b/exercises/hello-world/problem/problem.md @@ -12,7 +12,9 @@ $ php program.php {{ cli }} {{ cloud }} -Your first solution file is waiting for you, notice the `.php` extension in it's name. We'll execute your solution file for you when you hit `Run` or `Verify`. + +Your first solution file is waiting for you, notice the `.php` extension in it's name. We'll execute your solution file for you when you press the `Run` or `Verify` buttons. + {{ cloud }} You can write to the console from a PHP program with the following code: @@ -22,7 +24,7 @@ You can write to the console from a PHP program with the following code: echo "text"; ``` -The first line tells the PHP to interpret the code following it. It is required before any PHP code is written. Read more here: [http://php.net/manual/en/language.basic-syntax.phptags.php]() +The first line tells the PHP to interpret the code following it. It is required before any PHP code is written. Read more here: {{ doc 'class basics' en language.basic-syntax.phptags.php }} The second line is the instruction to print out some text. {{ cli }} @@ -39,34 +41,33 @@ $ php program.php {{ cli }} {{ cloud }} -Try hitting the *Run* button to execute your program. +Try pressing the `Run` button in the bottom right to execute your program. {{ cloud }} -[//]: # (TODO: Contextual words ??? e.g. console <-> browser) You should see the word "text" printed out on the console. -Now you must adapt the code to pass the challenge presented. Remember the challenge was: Write a program that prints the text "Hello World" to the console (stdout). +{{ cloud }} +In the cloud version of PHP School we capture the console out and display it in the browser when you click `Run`. +{{ cloud }} + +Now you must adapt the code to pass the presented challenge. Remember, the challenge was: Write a program that prints the text "Hello World" to the console (stdout). {{ cli }} We have created you a file named `hello-world.php` in your current working directory, feel free to use it! {{ cli }} -[//]: # (TODO: Verify...) -{{ verify ... ... ... }} -When you have finished and saved the file you must run the following (substituting program.php to the name of the file you created which contains your code) +{{ cli }} +When you have finished editing your program and saved the file you must run the following (substituting program.php to the name of the file you created which contains your code) ```sh $ {appname} verify program.php ``` - -When you have finished editing your program {cli}and saved the file{cli} you must verify your program. - -{{ verify program.php }} - -{{ cli }} -Don't forget to substitute program.php for the name of the file you created which contains your code. {{ cli }} -to proceed. Your program will be tested, a report will be generated, and the lesson will be marked 'completed' if you are successful. +{{ cloud }} +When you have finished editing your program you must verify it. Click the `Verify` button in the bottom right corner. +{{ cloud }} + +Your program will be tested, a report will be generated, and the lesson will be marked 'completed' if you are successful. ---------------------------------------------------------------------- diff --git a/exercises/http-json-api/problem/problem.md b/exercises/http-json-api/problem/problem.md index 6ac8b53..63e91b9 100644 --- a/exercises/http-json-api/problem/problem.md +++ b/exercises/http-json-api/problem/problem.md @@ -2,7 +2,9 @@ Write an HTTP **server** that serves JSON data when it receives a GET request to For example: - /api/parsetime?iso=2015-11-15T20:18:04+0000 +``` +/api/parsetime?iso=2015-11-15T20:18:04+0000 +``` The JSON response should contain only 'hour', 'minute' and 'second' properties. For example: diff --git a/exercises/time-server/problem/problem.md b/exercises/time-server/problem/problem.md index 2908c7c..3343f28 100644 --- a/exercises/time-server/problem/problem.md +++ b/exercises/time-server/problem/problem.md @@ -15,7 +15,7 @@ followed by a **newline** character. Month, day, hour, minute and second must be ---------------------------------------------------------------------- ## HINTS -For this exercise we'll be creating a raw TCP server. We will be using the core PHP socket_* functions. These functions are a thin wrapper around the C libraries. +For this exercise we'll be creating a raw TCP server. We will be using the core PHP `socket_*` functions. These functions are a thin wrapper around the C libraries. To create a server you need to use the functions `socket_create`, `socket_bind` & `socket_listen`. Once the socket is listening, you can accept connections from it, which will return a new socket connected to the client whenever a client From 7b217297ce3ae4e833ea1e75b72e2a8352a847ab Mon Sep 17 00:00:00 2001 From: Aydin Hassan Date: Tue, 7 Feb 2023 21:07:31 +0100 Subject: [PATCH 4/9] Update hello world for cloud --- exercises/hello-world/problem/problem.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/exercises/hello-world/problem/problem.md b/exercises/hello-world/problem/problem.md index 19d0829..984b86d 100644 --- a/exercises/hello-world/problem/problem.md +++ b/exercises/hello-world/problem/problem.md @@ -13,7 +13,11 @@ $ php program.php {{ cloud }} -Your first solution file is waiting for you, notice the `.php` extension in it's name. We'll execute your solution file for you when you press the `Run` or `Verify` buttons. +We've created you an empty file, look in the file tree for `solution.php`. That's your starting point. + +We'll execute your solution file for you when you press the `Run` or `Verify` buttons. The `Run` button simply runs your program and captures the output, displaying it for you to view. The `Verify` button runs your program but performs some extra tasks, such as comparing the output, checking for certain structures and function calls, etc. It then displays the result of those verifications. + +Both `Run` and `Verify` execute your program with random inputs which are determined by the current exercise. For example one exercise might generate a bunch of numbers to pass to your program, where another one might pass you a JSON encoded string. {{ cloud }} @@ -24,8 +28,9 @@ You can write to the console from a PHP program with the following code: echo "text"; ``` -The first line tells the PHP to interpret the code following it. It is required before any PHP code is written. Read more here: {{ doc 'class basics' en language.basic-syntax.phptags.php }} -The second line is the instruction to print out some text. +The first line tells PHP to interpret the code following it. It is required before any PHP code is written. The second line is the instruction to print out some text. + +{{ doc 'PHP tags' en language.basic-syntax.phptags.php }} {{ cli }} Place the code in to a text file using your favourite text editor, some popular editors are listed below: @@ -41,16 +46,12 @@ $ php program.php {{ cli }} {{ cloud }} -Try pressing the `Run` button in the bottom right to execute your program. +Try pressing the `Run` button in the bottom right corner to execute your program. {{ cloud }} You should see the word "text" printed out on the console. -{{ cloud }} -In the cloud version of PHP School we capture the console out and display it in the browser when you click `Run`. -{{ cloud }} - -Now you must adapt the code to pass the presented challenge. Remember, the challenge was: Write a program that prints the text "Hello World" to the console (stdout). +Now you must adapt the code to pass the presented challenge. Remember, the challenge was: Write a program that prints the text "Hello World" to the console. {{ cli }} We have created you a file named `hello-world.php` in your current working directory, feel free to use it! From 87c086f98670b0214ee66cb67f387f00285defe0 Mon Sep 17 00:00:00 2001 From: Aydin Hassan Date: Tue, 7 Feb 2023 21:48:15 +0100 Subject: [PATCH 5/9] Problem file updates --- exercises/baby-steps/problem/problem.md | 9 +++++---- .../concerned-about-separation/problem/problem.md | 11 +++++------ exercises/filtered-ls/problem/problem.md | 10 ++++++---- exercises/my-first-io/problem/problem.md | 4 ++-- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/exercises/baby-steps/problem/problem.md b/exercises/baby-steps/problem/problem.md index 33b8c88..8688716 100644 --- a/exercises/baby-steps/problem/problem.md +++ b/exercises/baby-steps/problem/problem.md @@ -8,6 +8,7 @@ You can access command-line arguments via the global `$argv` array. To get started, write a program that simply contains: ```php + Date: Tue, 7 Feb 2023 22:06:15 +0100 Subject: [PATCH 6/9] More problem file updates --- exercises/array-we-go/problem/problem.md | 7 +++---- exercises/exceptional-coding/problem/problem.md | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/exercises/array-we-go/problem/problem.md b/exercises/array-we-go/problem/problem.md index dd95cf7..7697f30 100644 --- a/exercises/array-we-go/problem/problem.md +++ b/exercises/array-we-go/problem/problem.md @@ -2,18 +2,17 @@ Write a program that takes an array of filepaths as arguments, filtering out fil Finally output the basename of the files, each on a new line. -The full path of the files to read will be provided as the command line arguments. You do not need to make your own test files. +The full path of the files to read will be provided as command line arguments. You do not need to make your own test files. ---------------------------------------------------------------------- ## HINTS -Remember the first argument will be the programs file path and not an argument passed to the program. +Remember, the first argument will be the programs file path and not an argument passed to the program. You will be expected to make use of core array functions, `array_shift`, `array_filter` and `array_map`. To check a file exists you will need to use `file_exists($filePath)`. This method will *return* a *boolean* `true` or `false`. -Documentation on the `SplFileObject` class can be found by pointing your browser here: - [http://php.net/manual/en/class.splfileobject.php]() +{{ doc 'SplFileObject' en class.splfileobject.php }} ---------------------------------------------------------------------- diff --git a/exercises/exceptional-coding/problem/problem.md b/exercises/exceptional-coding/problem/problem.md index 26fd657..1774007 100644 --- a/exercises/exceptional-coding/problem/problem.md +++ b/exercises/exceptional-coding/problem/problem.md @@ -6,7 +6,7 @@ Every file should exist but under exceptional circumstances some files may not. Unable to open file at path '/file/path' ``` -The full path of the files to read will be provided as the command line arguments. You do not need to make your own test files. +The full path of the files to read will be provided as command line arguments. You do not need to make your own test files. ---------------------------------------------------------------------- ## HINTS From 89e3b9d9596de95a74705818aebb4e9d596c0b56 Mon Sep 17 00:00:00 2001 From: Aydin Hassan Date: Wed, 8 Feb 2023 07:24:46 +0100 Subject: [PATCH 7/9] Don't use min stability --- composer.json | 1 - composer.lock | 306 +++++++++++++++++++++++--------------------------- 2 files changed, 140 insertions(+), 167 deletions(-) diff --git a/composer.json b/composer.json index b0b8810..b851a18 100644 --- a/composer.json +++ b/composer.json @@ -5,7 +5,6 @@ "homepage": "https://www.phpschool.io", "license": "MIT", "type": "php-school-workshop", - "minimum-stability": "dev", "authors": [ { "name": "Aydin Hassan", diff --git a/composer.lock b/composer.lock index c2b436e..a0a3b5b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "2b299b4104c22e211b3b9742180d8b08", + "content-hash": "57d1c979e3eefb0bba24687f6eaacf9b", "packages": [ { "name": "beberlei/assert", @@ -75,16 +75,16 @@ }, { "name": "fakerphp/faker", - "version": "dev-main", + "version": "v1.21.0", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "abc97b54a6c82bc276b261f67c560aed79f26ecd" + "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/abc97b54a6c82bc276b261f67c560aed79f26ecd", - "reference": "abc97b54a6c82bc276b261f67c560aed79f26ecd", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d", + "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d", "shasum": "" }, "require": { @@ -109,7 +109,6 @@ "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", "ext-mbstring": "Required for multibyte Unicode string functionality." }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -138,22 +137,22 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/main" + "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0" }, - "time": "2023-02-02T09:20:13+00:00" + "time": "2022-12-13T13:54:32+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "dev-master", + "version": "7.5.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "8459341c16f96b9610dcdfe22bd3060d60c0da04" + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/8459341c16f96b9610dcdfe22bd3060d60c0da04", - "reference": "8459341c16f96b9610dcdfe22bd3060d60c0da04", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", "shasum": "" }, "require": { @@ -179,7 +178,6 @@ "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, - "default-branch": true, "type": "library", "extra": { "bamarni-bin": { @@ -253,7 +251,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/master" + "source": "https://github.com/guzzle/guzzle/tree/7.5.0" }, "funding": [ { @@ -269,11 +267,11 @@ "type": "tidelift" } ], - "time": "2022-08-29T11:03:19+00:00" + "time": "2022-08-28T15:39:27+00:00" }, { "name": "guzzlehttp/promises", - "version": "dev-master", + "version": "1.5.2", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", @@ -291,7 +289,6 @@ "require-dev": { "symfony/phpunit-bridge": "^4.4 || ^5.1" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -358,16 +355,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "dev-master", + "version": "2.4.3", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "ddb46aeea6423f504136cff6989ae39064301eef" + "reference": "67c26b443f348a51926030c83481b85718457d3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/ddb46aeea6423f504136cff6989ae39064301eef", - "reference": "ddb46aeea6423f504136cff6989ae39064301eef", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d", + "reference": "67c26b443f348a51926030c83481b85718457d3d", "shasum": "" }, "require": { @@ -388,7 +385,6 @@ "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, - "default-branch": true, "type": "library", "extra": { "bamarni-bin": { @@ -458,7 +454,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/master" + "source": "https://github.com/guzzle/psr7/tree/2.4.3" }, "funding": [ { @@ -474,7 +470,7 @@ "type": "tidelift" } ], - "time": "2022-12-27T19:02:55+00:00" + "time": "2022-10-26T14:07:24+00:00" }, { "name": "kevinlebrun/colors.php", @@ -533,16 +529,16 @@ }, { "name": "laravel/serializable-closure", - "version": "dev-master", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "8746f27d79cb4412907b3e42f7d6a5e0630c0463" + "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/8746f27d79cb4412907b3e42f7d6a5e0630c0463", - "reference": "8746f27d79cb4412907b3e42f7d6a5e0630c0463", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", + "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", "shasum": "" }, "require": { @@ -554,7 +550,6 @@ "phpstan/phpstan": "^1.8.2", "symfony/var-dumper": "^5.4.11" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -590,20 +585,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2023-01-31T15:54:08+00:00" + "time": "2023-01-30T18:31:20+00:00" }, { "name": "league/commonmark", - "version": "1.6.x-dev", + "version": "1.6.7", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "b7a2aedcca80659fac31b92f525b7837b15d45aa" + "reference": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b7a2aedcca80659fac31b92f525b7837b15d45aa", - "reference": "b7a2aedcca80659fac31b92f525b7837b15d45aa", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/2b8185c13bc9578367a5bf901881d1c1b5bbd09b", + "reference": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b", "shasum": "" }, "require": { @@ -683,7 +678,7 @@ "type": "tidelift" } ], - "time": "2022-01-13T17:17:14+00:00" + "time": "2022-01-13T17:18:13+00:00" }, { "name": "myclabs/php-enum", @@ -750,7 +745,7 @@ }, { "name": "nikic/php-parser", - "version": "4.x-dev", + "version": "v4.15.3", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", @@ -770,7 +765,6 @@ "ircmaxell/php-yacc": "^0.0.7", "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, - "default-branch": true, "bin": [ "bin/php-parse" ], @@ -862,7 +856,7 @@ }, { "name": "php-di/php-di", - "version": "6.4.x-dev", + "version": "6.4.0", "source": { "type": "git", "url": "https://github.com/PHP-DI/PHP-DI.git", @@ -1091,7 +1085,7 @@ }, { "name": "php-school/keylighter", - "version": "0.8.x-dev", + "version": "0.8.4", "source": { "type": "git", "url": "https://github.com/php-school/KeyLighter.git", @@ -1113,7 +1107,6 @@ "suggest": { "symfony/console": "Allows usage of keylighters CLI utility." }, - "default-branch": true, "bin": [ "bin/keylighter" ], @@ -1285,7 +1278,7 @@ }, { "name": "psr/container", - "version": "1.x-dev", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", @@ -1333,23 +1326,22 @@ }, { "name": "psr/http-client", - "version": "dev-master", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "22b2ef5687f43679481615605d7a15c557ce85b1" + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/22b2ef5687f43679481615605d7a15c557ce85b1", - "reference": "22b2ef5687f43679481615605d7a15c557ce85b1", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", "shasum": "" }, "require": { "php": "^7.0 || ^8.0", "psr/http-message": "^1.0" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1368,7 +1360,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "homepage": "http://www.php-fig.org/" } ], "description": "Common interface for HTTP clients", @@ -1382,27 +1374,26 @@ "support": { "source": "https://github.com/php-fig/http-client/tree/master" }, - "time": "2020-09-19T09:12:31+00:00" + "time": "2020-06-29T06:28:15+00:00" }, { "name": "psr/http-factory", - "version": "dev-master", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "5a4f141ac2e5bc35e615134f127e1833158d2944" + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/5a4f141ac2e5bc35e615134f127e1833158d2944", - "reference": "5a4f141ac2e5bc35e615134f127e1833158d2944", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", "shasum": "" }, "require": { "php": ">=7.0.0", "psr/http-message": "^1.0" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1421,7 +1412,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "homepage": "http://www.php-fig.org/" } ], "description": "Common interfaces for PSR-7 HTTP message factories", @@ -1438,26 +1429,25 @@ "support": { "source": "https://github.com/php-fig/http-factory/tree/master" }, - "time": "2022-07-14T07:21:53+00:00" + "time": "2019-04-30T12:38:16+00:00" }, { "name": "psr/http-message", - "version": "dev-master", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4" + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", - "reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "shasum": "" }, "require": { "php": ">=5.3.0" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1492,7 +1482,7 @@ "support": { "source": "https://github.com/php-fig/http-message/tree/master" }, - "time": "2019-08-29T13:16:46+00:00" + "time": "2016-08-06T14:39:51+00:00" }, { "name": "psr/log", @@ -1590,7 +1580,7 @@ }, { "name": "symfony/deprecation-contracts", - "version": "dev-main", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", @@ -1605,7 +1595,6 @@ "require": { "php": ">=8.1" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1658,16 +1647,16 @@ }, { "name": "symfony/filesystem", - "version": "6.3.x-dev", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "547514db3e8d36c6e03457d32cf37decfb1f6127" + "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/547514db3e8d36c6e03457d32cf37decfb1f6127", - "reference": "547514db3e8d36c6e03457d32cf37decfb1f6127", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/e59e8a4006afd7f5654786a83b4fcb8da98f4593", + "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593", "shasum": "" }, "require": { @@ -1701,7 +1690,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/6.3" + "source": "https://github.com/symfony/filesystem/tree/v6.2.5" }, "funding": [ { @@ -1717,20 +1706,20 @@ "type": "tidelift" } ], - "time": "2023-02-02T07:48:03+00:00" + "time": "2023-01-20T17:45:48+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "dev-main", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", "shasum": "" }, "require": { @@ -1742,11 +1731,10 @@ "suggest": { "ext-ctype": "For best performance" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1784,7 +1772,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/main" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" }, "funding": [ { @@ -1800,20 +1788,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "dev-main", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "f9c7affe77a00ae32ca127ca6833d034e6d33f25" + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f9c7affe77a00ae32ca127ca6833d034e6d33f25", - "reference": "f9c7affe77a00ae32ca127ca6833d034e6d33f25", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", "shasum": "" }, "require": { @@ -1825,11 +1813,10 @@ "suggest": { "ext-mbstring": "For best performance" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1868,7 +1855,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/main" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" }, "funding": [ { @@ -1884,20 +1871,20 @@ "type": "tidelift" } ], - "time": "2023-01-30T17:25:47+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/process", - "version": "6.3.x-dev", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "5e6dd40d75b48692363fe51db28cf8169b617e39" + "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/5e6dd40d75b48692363fe51db28cf8169b617e39", - "reference": "5e6dd40d75b48692363fe51db28cf8169b617e39", + "url": "https://api.github.com/repos/symfony/process/zipball/9ead139f63dfa38c4e4a9049cc64a8b2748c83b7", + "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7", "shasum": "" }, "require": { @@ -1929,7 +1916,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/6.3" + "source": "https://github.com/symfony/process/tree/v6.2.5" }, "funding": [ { @@ -1945,22 +1932,22 @@ "type": "tidelift" } ], - "time": "2023-02-02T07:48:03+00:00" + "time": "2023-01-01T08:38:09+00:00" } ], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "2.0.x-dev", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "d6eef505a6c46e963e54bf73bb9de43cdea70821" + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d6eef505a6c46e963e54bf73bb9de43cdea70821", - "reference": "d6eef505a6c46e963e54bf73bb9de43cdea70821", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", "shasum": "" }, "require": { @@ -1976,7 +1963,6 @@ "phpunit/phpunit": "^9.5.27", "vimeo/psalm": "^5.4" }, - "default-branch": true, "type": "library", "autoload": { "psr-4": { @@ -2002,7 +1988,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.x" + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" }, "funding": [ { @@ -2018,11 +2004,11 @@ "type": "tidelift" } ], - "time": "2023-01-04T15:42:40+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.x-dev", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", @@ -2046,7 +2032,6 @@ "doctrine/common": "^2.13.3 || ^3.2.2", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, - "default-branch": true, "type": "library", "autoload": { "files": [ @@ -2082,27 +2067,25 @@ }, { "name": "phar-io/manifest", - "version": "dev-master", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "36d8a21e851a9512db2b086dc5ac2c61308f0138" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/36d8a21e851a9512db2b086dc5ac2c61308f0138", - "reference": "36d8a21e851a9512db2b086dc5ac2c61308f0138", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { "ext-dom": "*", - "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", "php": "^7.2 || ^8.0" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -2138,15 +2121,9 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/master" + "source": "https://github.com/phar-io/manifest/tree/2.0.3" }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2022-02-21T19:55:33+00:00" + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", @@ -2201,16 +2178,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.x-dev", + "version": "1.9.16", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "f9f7d4a0714c8356ebe3a14e328a0a6dc778d454" + "reference": "922e2689bb180575d0f57de0443c431a5a698e8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/f9f7d4a0714c8356ebe3a14e328a0a6dc778d454", - "reference": "f9f7d4a0714c8356ebe3a14e328a0a6dc778d454", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/922e2689bb180575d0f57de0443c431a5a698e8f", + "reference": "922e2689bb180575d0f57de0443c431a5a698e8f", "shasum": "" }, "require": { @@ -2219,7 +2196,6 @@ "conflict": { "phpstan/phpstan-shim": "*" }, - "default-branch": true, "bin": [ "phpstan", "phpstan.phar" @@ -2241,7 +2217,7 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.10.x" + "source": "https://github.com/phpstan/phpstan/tree/1.9.16" }, "funding": [ { @@ -2257,20 +2233,20 @@ "type": "tidelift" } ], - "time": "2023-02-02T16:02:59+00:00" + "time": "2023-02-07T10:42:21+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.x-dev", + "version": "9.2.24", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "c1a1d8666565e8e4efa60211cadcce29909593d3" + "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c1a1d8666565e8e4efa60211cadcce29909593d3", - "reference": "c1a1d8666565e8e4efa60211cadcce29909593d3", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2cf940ebc6355a9d430462811b5aaa308b174bed", + "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed", "shasum": "" }, "require": { @@ -2326,7 +2302,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.24" }, "funding": [ { @@ -2334,20 +2310,20 @@ "type": "github" } ], - "time": "2023-01-30T06:35:23+00:00" + "time": "2023-01-26T08:26:55+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.x-dev", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "38b24367e1b340aa78b96d7cab042942d917bb84" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/38b24367e1b340aa78b96d7cab042942d917bb84", - "reference": "38b24367e1b340aa78b96d7cab042942d917bb84", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { @@ -2386,7 +2362,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" }, "funding": [ { @@ -2394,7 +2370,7 @@ "type": "github" } ], - "time": "2022-02-11T16:23:04+00:00" + "time": "2021-12-02T12:48:52+00:00" }, { "name": "phpunit/php-invoker", @@ -2579,7 +2555,7 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.x-dev", + "version": "9.6.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", @@ -2848,16 +2824,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.x-dev", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "b247957a1c8dc81a671770f74b479c0a78a818f1" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/b247957a1c8dc81a671770f74b479c0a78a818f1", - "reference": "b247957a1c8dc81a671770f74b479c0a78a818f1", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { @@ -2910,7 +2886,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" }, "funding": [ { @@ -2918,7 +2894,7 @@ "type": "github" } ], - "time": "2022-09-14T12:46:14+00:00" + "time": "2022-09-14T12:41:17+00:00" }, { "name": "sebastian/complexity", @@ -3045,7 +3021,7 @@ }, { "name": "sebastian/environment", - "version": "5.1.x-dev", + "version": "5.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", @@ -3096,7 +3072,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" }, "funding": [ { @@ -3108,7 +3084,7 @@ }, { "name": "sebastian/exporter", - "version": "4.0.x-dev", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", @@ -3173,7 +3149,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" }, "funding": [ { @@ -3185,7 +3161,7 @@ }, { "name": "sebastian/global-state", - "version": "5.0.x-dev", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", @@ -3418,7 +3394,7 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.x-dev", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", @@ -3481,16 +3457,16 @@ }, { "name": "sebastian/resource-operations", - "version": "dev-main", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "f7adbde0c6a1f761f9a005bda39b7fdbf2d16bad" + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/f7adbde0c6a1f761f9a005bda39b7fdbf2d16bad", - "reference": "f7adbde0c6a1f761f9a005bda39b7fdbf2d16bad", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "shasum": "" }, "require": { @@ -3499,11 +3475,10 @@ "require-dev": { "phpunit/phpunit": "^9.0" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -3524,7 +3499,8 @@ "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "source": "https://github.com/sebastianbergmann/resource-operations/tree/main" + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" }, "funding": [ { @@ -3532,11 +3508,11 @@ "type": "github" } ], - "time": "2023-02-02T11:26:30+00:00" + "time": "2020-09-28T06:45:17+00:00" }, { "name": "sebastian/type", - "version": "3.2.x-dev", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", @@ -3580,7 +3556,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" }, "funding": [ { @@ -3592,7 +3568,7 @@ }, { "name": "sebastian/version", - "version": "3.0.x-dev", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", @@ -3645,16 +3621,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "dev-master", + "version": "3.7.1", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "add95a74551c3ba8fc99ef7651ad05f553b3fbbf" + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/add95a74551c3ba8fc99ef7651ad05f553b3fbbf", - "reference": "add95a74551c3ba8fc99ef7651ad05f553b3fbbf", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", "shasum": "" }, "require": { @@ -3666,7 +3642,6 @@ "require-dev": { "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, - "default-branch": true, "bin": [ "bin/phpcs", "bin/phpcbf" @@ -3691,15 +3666,14 @@ "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", "keywords": [ "phpcs", - "standards", - "static analysis" + "standards" ], "support": { "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2022-12-22T21:46:41+00:00" + "time": "2022-06-18T07:21:10+00:00" }, { "name": "theseer/tokenizer", @@ -3753,7 +3727,7 @@ } ], "aliases": [], - "minimum-stability": "dev", + "minimum-stability": "stable", "stability-flags": { "php-school/php-workshop": 20 }, From 440b32f73ad613fff121d156858a91b65d96e20a Mon Sep 17 00:00:00 2001 From: Aydin Hassan Date: Wed, 8 Feb 2023 07:47:22 +0100 Subject: [PATCH 8/9] More cloud updates --- exercises/database-read/problem/problem.md | 6 +++--- exercises/dependency-heaven/problem/problem.md | 6 +++--- exercises/http-json-api/problem/problem.md | 6 +++--- exercises/time-server/problem/problem.md | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/exercises/database-read/problem/problem.md b/exercises/database-read/problem/problem.md index bb086ee..2964b11 100644 --- a/exercises/database-read/problem/problem.md +++ b/exercises/database-read/problem/problem.md @@ -19,7 +19,7 @@ A short introduction can be found here: The most interesting class will be `\PDO`. The first parameter is the DSN string. The second and third are the username and password for the database. They are not needed for this exercise and can be left out. -The `users` table is structured as follows +The `users` table is structured as follows: ``` +----+-----------------+-----+--------+ @@ -40,11 +40,11 @@ foreach ($pdo->query('SELECT * FROM users') as $row) { } ``` -`$row` is now an array of data. The key will be the column name and the value is the database value +`$row` is now an array of data. The key will be the column name and the value is the database value. You should use prepared statements to perform the updating. You should be most interested in the `prepare` and `execute` methods. -Remember the first argument will be the program's file path and not an argument passed to the program. +Remember, the first argument will be the program's file path and not an argument passed to the program. ---------------------------------------------------------------------- diff --git a/exercises/dependency-heaven/problem/problem.md b/exercises/dependency-heaven/problem/problem.md index 3853c37..2af4499 100644 --- a/exercises/dependency-heaven/problem/problem.md +++ b/exercises/dependency-heaven/problem/problem.md @@ -38,8 +38,8 @@ The library works by accepting a PSR7 request and returns to you a PSR7 response There are a few other components we need, in order to use `league/route`: - * **laminas/laminas-diactoros** - For the PSR7 requests and responses. - * **laminas/laminas-httphandlerrunner** - For outputting the PSR7 response to the browser. + * `laminas/laminas-diactoros` - For the PSR7 requests and responses. + * `laminas/laminas-httphandlerrunner` - For outputting the PSR7 response to the browser. `laminas/laminas-diactoros` is a PSR7 implementation. PSR's are standards defined by the PHP-FIG, a committee of PHP projects, attempting to increase interoperability in the PHP ecosystem. PSR7 is a standard for modelling HTTP requests. We can use the `laminas/laminas-diactoros` package to marshal a PSR7 request object from the PHP super globals like so: @@ -98,7 +98,7 @@ Use `composer init` to create your `composer.json` file with interactive search. {{ cli }} {{ cloud }} -Composer is installed and ready to go on cloud, use the Composer Deps button in the editor to search for and install your dependencies. While you should read the documentation for [Composer](https://getcomposer.org/doc/00-intro.md), it's important to note that the way we manage dependencies on PHP School cloud, is not how you would manage them in your own projects. We abstract away the `composer.json` file to keep it simple. +Composer is installed and ready to go on cloud, use the `Composer Deps` button in the editor to search for and install your dependencies. While you should read the documentation for [Composer](https://getcomposer.org/doc/00-intro.md), it's important to note that the way we manage dependencies on PHP School cloud, is not how you would manage them in your own projects. We abstract away the `composer.json` file to keep it simple. {{ cloud }} For more details look at the docs for... diff --git a/exercises/http-json-api/problem/problem.md b/exercises/http-json-api/problem/problem.md index 63e91b9..c0325b4 100644 --- a/exercises/http-json-api/problem/problem.md +++ b/exercises/http-json-api/problem/problem.md @@ -1,4 +1,4 @@ -Write an HTTP **server** that serves JSON data when it receives a GET request to the path '/api/parsetime'. Expect the request to contain a query string with a key 'iso' and an ISO-format time as the value. +Write an HTTP **server** that serves JSON data when it receives a GET request to the path `/api/parsetime`. Expect the request to contain a query string with a key `iso` and an ISO-format time as the value. For example: @@ -6,7 +6,7 @@ For example: /api/parsetime?iso=2015-11-15T20:18:04+0000 ``` -The JSON response should contain only 'hour', 'minute' and 'second' properties. For example: +The JSON response should contain only `hour`, `minute` and `second` properties. For example: ```json { @@ -16,7 +16,7 @@ The JSON response should contain only 'hour', 'minute' and 'second' properties. } ``` -Add a second endpoint for the path '/api/unixtime' which accepts the same query string but returns UNIX epoch time in seconds (the number of seconds since 1 Jan 1970 00:00:00 UTC) under the property 'unixtime'. +Add a second endpoint for the path `/api/unixtime` which accepts the same query string but returns UNIX epoch time in seconds (the number of seconds since 1 Jan 1970 00:00:00 UTC) under the property `unixtime`. For example: diff --git a/exercises/time-server/problem/problem.md b/exercises/time-server/problem/problem.md index 3343f28..353b37a 100644 --- a/exercises/time-server/problem/problem.md +++ b/exercises/time-server/problem/problem.md @@ -6,7 +6,7 @@ Your server should listen to TCP connections on the IP address provided as the f "YYYY-MM-DD hh:mm:ss" ``` -followed by a **newline** character. Month, day, hour, minute and second must be *zero-filled* to 2 integers. For example: +Followed by a **newline** character. Month, day, hour, minute and second must be *zero-filled* to 2 integers. For example: ``` "2013-07-06 17:42:30" @@ -15,7 +15,7 @@ followed by a **newline** character. Month, day, hour, minute and second must be ---------------------------------------------------------------------- ## HINTS -For this exercise we'll be creating a raw TCP server. We will be using the core PHP `socket_*` functions. These functions are a thin wrapper around the C libraries. +For this exercise we'll be creating a raw TCP server. We will be using the core PHP `socket_*` functions. These functions are a thin wrapper around the respective C libraries. To create a server you need to use the functions `socket_create`, `socket_bind` & `socket_listen`. Once the socket is listening, you can accept connections from it, which will return a new socket connected to the client whenever a client From 19649ca46b10734dbe84d3ba9be009718589583e Mon Sep 17 00:00:00 2001 From: Aydin Hassan Date: Wed, 8 Feb 2023 07:53:54 +0100 Subject: [PATCH 9/9] Fix links for db exercise --- exercises/database-read/problem/problem.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exercises/database-read/problem/problem.md b/exercises/database-read/problem/problem.md index 2964b11..c20f31b 100644 --- a/exercises/database-read/problem/problem.md +++ b/exercises/database-read/problem/problem.md @@ -11,11 +11,11 @@ Finally, you will be given a random name as the second argument to your program, This is an exercise introducing databases and PDO. PDO is a powerful abstraction library for dealing with different database vendors in a consistent manner. You can read the PDO manual here: - [http://php.net/manual/en/book.pdo.php]() + [http://php.net/manual/en/book.pdo.php](http://php.net/manual/en/book.pdo.php) A short introduction can be found here: - [http://www.phptherightway.com/#pdo_extension]() + [http://www.phptherightway.com/#pdo_extension](http://www.phptherightway.com/#pdo_extension) The most interesting class will be `\PDO`. The first parameter is the DSN string. The second and third are the username and password for the database. They are not needed for this exercise and can be left out.