├── .gitignore ├── README.md ├── composer.json ├── composer.lock ├── public ├── asset │ └── img │ │ └── logo.png └── index.php ├── resources ├── articles.json ├── contributors.json ├── events.json └── releases.json ├── screenshots ├── get-involved.png ├── getting-started.png ├── installation.png ├── landing.png └── windows-installation.png ├── src └── ServiceProvider │ └── LeagueServiceProvider.php └── templates ├── component ├── article-card.php ├── contributor-card.php ├── event-card.php └── release-card.php ├── get-involved.php ├── getting-started ├── installation.php ├── installation │ ├── linux.php │ ├── macos.php │ ├── other-platforms.php │ └── windows.php ├── introduction │ ├── what-can-php-do.php │ └── what-is-php.php ├── layout.php ├── sidebar.php └── tutorial │ └── .gitkeep ├── landing.php └── layout ├── basic.php ├── footer.php └── header.php /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # web-php-mock-ups 2 | 3 | see : https://externals.io/message/104088 4 | 5 | ```console 6 | $ git clone https://github.com/azjezz/web-php-mock-ups 7 | $ cd web-php-mock-ups 8 | $ composer install 9 | $ cd public 10 | $ php -S 127.0.0.1:8080 11 | ``` 12 | > visit http://127.0.0.1:8080 13 | 14 | ## Screenshots 15 | ### Landing 16 | ![landing](https://github.com/azjezz/web-php-mock-ups/blob/master/screenshots/landing.png) 17 | 18 | ### Getting Started 19 | ![getting-started](https://github.com/azjezz/web-php-mock-ups/blob/master/screenshots/getting-started.png) 20 | 21 | ### Get Involved 22 | 23 | ![get-involved](https://github.com/azjezz/web-php-mock-ups/blob/master/screenshots/get-involved.png) 24 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "azjezz/web-php-mock-ups", 3 | "description": "Mock ups for the new PHP project website proposal.", 4 | "authors": [ 5 | { 6 | "name": "azjezz", 7 | "email": "azjezz@protonmail.com" 8 | } 9 | ], 10 | "require": { 11 | "nikic/fast-route": "^1.3", 12 | "league/container": "^3.2", 13 | "league/route": "^4.2", 14 | "league/plates": "^3.3", 15 | "zendframework/zend-diactoros": "^2.1", 16 | "narrowspark/http-emitter": "^0.7.0" 17 | }, 18 | "autoload": { 19 | "psr-4": { 20 | "PHP\\": "src/" 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "985e389c856422139fb9117c22de0f7b", 8 | "packages": [ 9 | { 10 | "name": "league/container", 11 | "version": "3.2.2", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/thephpleague/container.git", 15 | "reference": "fa38155fa392ad2ed05fb6418e9d9d58064c7e76" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/thephpleague/container/zipball/fa38155fa392ad2ed05fb6418e9d9d58064c7e76", 20 | "reference": "fa38155fa392ad2ed05fb6418e9d9d58064c7e76", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": "^7.0", 25 | "psr/container": "^1.0" 26 | }, 27 | "provide": { 28 | "psr/container-implementation": "^1.0" 29 | }, 30 | "replace": { 31 | "orno/di": "~2.0" 32 | }, 33 | "require-dev": { 34 | "phpunit/phpunit": "^6.0", 35 | "squizlabs/php_codesniffer": "^3.3" 36 | }, 37 | "type": "library", 38 | "extra": { 39 | "branch-alias": { 40 | "dev-3.x": "3.x-dev", 41 | "dev-2.x": "2.x-dev", 42 | "dev-1.x": "1.x-dev" 43 | } 44 | }, 45 | "autoload": { 46 | "psr-4": { 47 | "League\\Container\\": "src" 48 | } 49 | }, 50 | "notification-url": "https://packagist.org/downloads/", 51 | "license": [ 52 | "MIT" 53 | ], 54 | "authors": [ 55 | { 56 | "name": "Phil Bennett", 57 | "email": "philipobenito@gmail.com", 58 | "homepage": "http://www.philipobenito.com", 59 | "role": "Developer" 60 | } 61 | ], 62 | "description": "A fast and intuitive dependency injection container.", 63 | "homepage": "https://github.com/thephpleague/container", 64 | "keywords": [ 65 | "container", 66 | "dependency", 67 | "di", 68 | "injection", 69 | "league", 70 | "provider", 71 | "service" 72 | ], 73 | "time": "2018-09-28T13:24:15+00:00" 74 | }, 75 | { 76 | "name": "league/plates", 77 | "version": "3.3.0", 78 | "source": { 79 | "type": "git", 80 | "url": "https://github.com/thephpleague/plates.git", 81 | "reference": "b1684b6f127714497a0ef927ce42c0b44b45a8af" 82 | }, 83 | "dist": { 84 | "type": "zip", 85 | "url": "https://api.github.com/repos/thephpleague/plates/zipball/b1684b6f127714497a0ef927ce42c0b44b45a8af", 86 | "reference": "b1684b6f127714497a0ef927ce42c0b44b45a8af", 87 | "shasum": "" 88 | }, 89 | "require": { 90 | "php": "^5.3 | ^7.0" 91 | }, 92 | "require-dev": { 93 | "mikey179/vfsstream": "^1.4", 94 | "phpunit/phpunit": "~4.0", 95 | "squizlabs/php_codesniffer": "~1.5" 96 | }, 97 | "type": "library", 98 | "extra": { 99 | "branch-alias": { 100 | "dev-master": "3.0-dev" 101 | } 102 | }, 103 | "autoload": { 104 | "psr-4": { 105 | "League\\Plates\\": "src" 106 | } 107 | }, 108 | "notification-url": "https://packagist.org/downloads/", 109 | "license": [ 110 | "MIT" 111 | ], 112 | "authors": [ 113 | { 114 | "name": "Jonathan Reinink", 115 | "email": "jonathan@reinink.ca", 116 | "role": "Developer" 117 | } 118 | ], 119 | "description": "Plates, the native PHP template system that's fast, easy to use and easy to extend.", 120 | "homepage": "http://platesphp.com", 121 | "keywords": [ 122 | "league", 123 | "package", 124 | "templates", 125 | "templating", 126 | "views" 127 | ], 128 | "time": "2016-12-28T00:14:17+00:00" 129 | }, 130 | { 131 | "name": "league/route", 132 | "version": "4.2.0", 133 | "source": { 134 | "type": "git", 135 | "url": "https://github.com/thephpleague/route.git", 136 | "reference": "bf47eec368763c7d35986eefa5a1891b9a3c002f" 137 | }, 138 | "dist": { 139 | "type": "zip", 140 | "url": "https://api.github.com/repos/thephpleague/route/zipball/bf47eec368763c7d35986eefa5a1891b9a3c002f", 141 | "reference": "bf47eec368763c7d35986eefa5a1891b9a3c002f", 142 | "shasum": "" 143 | }, 144 | "require": { 145 | "nikic/fast-route": "^1.0", 146 | "php": ">=7.1", 147 | "psr/container": "^1.0", 148 | "psr/http-factory": "^1.0", 149 | "psr/http-message": "^1.0", 150 | "psr/http-server-handler": "^1.0", 151 | "psr/http-server-middleware": "^1.0" 152 | }, 153 | "replace": { 154 | "orno/http": "~1.0", 155 | "orno/route": "~1.0" 156 | }, 157 | "require-dev": { 158 | "phpstan/phpstan": "^0.10.3", 159 | "phpstan/phpstan-phpunit": "^0.10.0", 160 | "phpunit/phpunit": "^7.0", 161 | "squizlabs/php_codesniffer": "^3.3" 162 | }, 163 | "type": "library", 164 | "extra": { 165 | "branch-alias": { 166 | "dev-4.x": "4.x-dev", 167 | "dev-3.x": "3.x-dev", 168 | "dev-2.x": "2.x-dev", 169 | "dev-1.x": "1.x-dev" 170 | } 171 | }, 172 | "autoload": { 173 | "psr-4": { 174 | "League\\Route\\": "src" 175 | } 176 | }, 177 | "notification-url": "https://packagist.org/downloads/", 178 | "license": [ 179 | "MIT" 180 | ], 181 | "authors": [ 182 | { 183 | "name": "Phil Bennett", 184 | "email": "philipobenito@gmail.com", 185 | "role": "Developer" 186 | } 187 | ], 188 | "description": "Fast routing and dispatch component including PSR-15 middleware, built on top of FastRoute.", 189 | "homepage": "https://github.com/thephpleague/route", 190 | "keywords": [ 191 | "dispatcher", 192 | "league", 193 | "psr-15", 194 | "psr-7", 195 | "psr15", 196 | "psr7", 197 | "route", 198 | "router" 199 | ], 200 | "time": "2018-10-16T12:52:48+00:00" 201 | }, 202 | { 203 | "name": "narrowspark/http-emitter", 204 | "version": "0.7.0", 205 | "source": { 206 | "type": "git", 207 | "url": "https://github.com/narrowspark/http-emitter.git", 208 | "reference": "571aaff4437e95de21ee5c92dc9ee41a291d988e" 209 | }, 210 | "dist": { 211 | "type": "zip", 212 | "url": "https://api.github.com/repos/narrowspark/http-emitter/zipball/571aaff4437e95de21ee5c92dc9ee41a291d988e", 213 | "reference": "571aaff4437e95de21ee5c92dc9ee41a291d988e", 214 | "shasum": "" 215 | }, 216 | "require": { 217 | "php": "^7.1", 218 | "psr/http-message": "^1.0", 219 | "symfony/polyfill-mbstring": "^1.8.0" 220 | }, 221 | "provide": { 222 | "psr/container-implementation": "^1.0", 223 | "psr/http-message-implementation": "^1.0" 224 | }, 225 | "require-dev": { 226 | "narrowspark/coding-standard": "^1.4.0", 227 | "phpunit/phpunit": "^7.0", 228 | "zendframework/zend-diactoros": "^1.7.0" 229 | }, 230 | "type": "library", 231 | "autoload": { 232 | "psr-4": { 233 | "Narrowspark\\HttpEmitter\\": "src/" 234 | }, 235 | "exclude-from-classmap": [ 236 | "tests/" 237 | ] 238 | }, 239 | "notification-url": "https://packagist.org/downloads/", 240 | "license": [ 241 | "MIT" 242 | ], 243 | "authors": [ 244 | { 245 | "name": "Daniel Bannert", 246 | "email": "d.bannert@anolilab.de", 247 | "homepage": "http://www.anolilab.de", 248 | "role": "Developer" 249 | } 250 | ], 251 | "description": "Emitting psr-7 responses.", 252 | "keywords": [ 253 | "emitter", 254 | "http", 255 | "narrowspark", 256 | "psr-7", 257 | "sapi" 258 | ], 259 | "time": "2018-10-31T12:31:29+00:00" 260 | }, 261 | { 262 | "name": "nikic/fast-route", 263 | "version": "v1.3.0", 264 | "source": { 265 | "type": "git", 266 | "url": "https://github.com/nikic/FastRoute.git", 267 | "reference": "181d480e08d9476e61381e04a71b34dc0432e812" 268 | }, 269 | "dist": { 270 | "type": "zip", 271 | "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812", 272 | "reference": "181d480e08d9476e61381e04a71b34dc0432e812", 273 | "shasum": "" 274 | }, 275 | "require": { 276 | "php": ">=5.4.0" 277 | }, 278 | "require-dev": { 279 | "phpunit/phpunit": "^4.8.35|~5.7" 280 | }, 281 | "type": "library", 282 | "autoload": { 283 | "psr-4": { 284 | "FastRoute\\": "src/" 285 | }, 286 | "files": [ 287 | "src/functions.php" 288 | ] 289 | }, 290 | "notification-url": "https://packagist.org/downloads/", 291 | "license": [ 292 | "BSD-3-Clause" 293 | ], 294 | "authors": [ 295 | { 296 | "name": "Nikita Popov", 297 | "email": "nikic@php.net" 298 | } 299 | ], 300 | "description": "Fast request router for PHP", 301 | "keywords": [ 302 | "router", 303 | "routing" 304 | ], 305 | "time": "2018-02-13T20:26:39+00:00" 306 | }, 307 | { 308 | "name": "psr/container", 309 | "version": "1.0.0", 310 | "source": { 311 | "type": "git", 312 | "url": "https://github.com/php-fig/container.git", 313 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 314 | }, 315 | "dist": { 316 | "type": "zip", 317 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 318 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 319 | "shasum": "" 320 | }, 321 | "require": { 322 | "php": ">=5.3.0" 323 | }, 324 | "type": "library", 325 | "extra": { 326 | "branch-alias": { 327 | "dev-master": "1.0.x-dev" 328 | } 329 | }, 330 | "autoload": { 331 | "psr-4": { 332 | "Psr\\Container\\": "src/" 333 | } 334 | }, 335 | "notification-url": "https://packagist.org/downloads/", 336 | "license": [ 337 | "MIT" 338 | ], 339 | "authors": [ 340 | { 341 | "name": "PHP-FIG", 342 | "homepage": "http://www.php-fig.org/" 343 | } 344 | ], 345 | "description": "Common Container Interface (PHP FIG PSR-11)", 346 | "homepage": "https://github.com/php-fig/container", 347 | "keywords": [ 348 | "PSR-11", 349 | "container", 350 | "container-interface", 351 | "container-interop", 352 | "psr" 353 | ], 354 | "time": "2017-02-14T16:28:37+00:00" 355 | }, 356 | { 357 | "name": "psr/http-factory", 358 | "version": "1.0.0", 359 | "source": { 360 | "type": "git", 361 | "url": "https://github.com/php-fig/http-factory.git", 362 | "reference": "378bfe27931ecc54ff824a20d6f6bfc303bbd04c" 363 | }, 364 | "dist": { 365 | "type": "zip", 366 | "url": "https://api.github.com/repos/php-fig/http-factory/zipball/378bfe27931ecc54ff824a20d6f6bfc303bbd04c", 367 | "reference": "378bfe27931ecc54ff824a20d6f6bfc303bbd04c", 368 | "shasum": "" 369 | }, 370 | "require": { 371 | "php": ">=7.0.0", 372 | "psr/http-message": "^1.0" 373 | }, 374 | "type": "library", 375 | "extra": { 376 | "branch-alias": { 377 | "dev-master": "1.0.x-dev" 378 | } 379 | }, 380 | "autoload": { 381 | "psr-4": { 382 | "Psr\\Http\\Message\\": "src/" 383 | } 384 | }, 385 | "notification-url": "https://packagist.org/downloads/", 386 | "license": [ 387 | "MIT" 388 | ], 389 | "authors": [ 390 | { 391 | "name": "PHP-FIG", 392 | "homepage": "http://www.php-fig.org/" 393 | } 394 | ], 395 | "description": "Common interfaces for PSR-7 HTTP message factories", 396 | "keywords": [ 397 | "factory", 398 | "http", 399 | "message", 400 | "psr", 401 | "psr-17", 402 | "psr-7", 403 | "request", 404 | "response" 405 | ], 406 | "time": "2018-07-30T21:54:04+00:00" 407 | }, 408 | { 409 | "name": "psr/http-message", 410 | "version": "1.0.1", 411 | "source": { 412 | "type": "git", 413 | "url": "https://github.com/php-fig/http-message.git", 414 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" 415 | }, 416 | "dist": { 417 | "type": "zip", 418 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", 419 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", 420 | "shasum": "" 421 | }, 422 | "require": { 423 | "php": ">=5.3.0" 424 | }, 425 | "type": "library", 426 | "extra": { 427 | "branch-alias": { 428 | "dev-master": "1.0.x-dev" 429 | } 430 | }, 431 | "autoload": { 432 | "psr-4": { 433 | "Psr\\Http\\Message\\": "src/" 434 | } 435 | }, 436 | "notification-url": "https://packagist.org/downloads/", 437 | "license": [ 438 | "MIT" 439 | ], 440 | "authors": [ 441 | { 442 | "name": "PHP-FIG", 443 | "homepage": "http://www.php-fig.org/" 444 | } 445 | ], 446 | "description": "Common interface for HTTP messages", 447 | "homepage": "https://github.com/php-fig/http-message", 448 | "keywords": [ 449 | "http", 450 | "http-message", 451 | "psr", 452 | "psr-7", 453 | "request", 454 | "response" 455 | ], 456 | "time": "2016-08-06T14:39:51+00:00" 457 | }, 458 | { 459 | "name": "psr/http-server-handler", 460 | "version": "1.0.1", 461 | "source": { 462 | "type": "git", 463 | "url": "https://github.com/php-fig/http-server-handler.git", 464 | "reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7" 465 | }, 466 | "dist": { 467 | "type": "zip", 468 | "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/aff2f80e33b7f026ec96bb42f63242dc50ffcae7", 469 | "reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7", 470 | "shasum": "" 471 | }, 472 | "require": { 473 | "php": ">=7.0", 474 | "psr/http-message": "^1.0" 475 | }, 476 | "type": "library", 477 | "extra": { 478 | "branch-alias": { 479 | "dev-master": "1.0.x-dev" 480 | } 481 | }, 482 | "autoload": { 483 | "psr-4": { 484 | "Psr\\Http\\Server\\": "src/" 485 | } 486 | }, 487 | "notification-url": "https://packagist.org/downloads/", 488 | "license": [ 489 | "MIT" 490 | ], 491 | "authors": [ 492 | { 493 | "name": "PHP-FIG", 494 | "homepage": "http://www.php-fig.org/" 495 | } 496 | ], 497 | "description": "Common interface for HTTP server-side request handler", 498 | "keywords": [ 499 | "handler", 500 | "http", 501 | "http-interop", 502 | "psr", 503 | "psr-15", 504 | "psr-7", 505 | "request", 506 | "response", 507 | "server" 508 | ], 509 | "time": "2018-10-30T16:46:14+00:00" 510 | }, 511 | { 512 | "name": "psr/http-server-middleware", 513 | "version": "1.0.1", 514 | "source": { 515 | "type": "git", 516 | "url": "https://github.com/php-fig/http-server-middleware.git", 517 | "reference": "2296f45510945530b9dceb8bcedb5cb84d40c5f5" 518 | }, 519 | "dist": { 520 | "type": "zip", 521 | "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/2296f45510945530b9dceb8bcedb5cb84d40c5f5", 522 | "reference": "2296f45510945530b9dceb8bcedb5cb84d40c5f5", 523 | "shasum": "" 524 | }, 525 | "require": { 526 | "php": ">=7.0", 527 | "psr/http-message": "^1.0", 528 | "psr/http-server-handler": "^1.0" 529 | }, 530 | "type": "library", 531 | "extra": { 532 | "branch-alias": { 533 | "dev-master": "1.0.x-dev" 534 | } 535 | }, 536 | "autoload": { 537 | "psr-4": { 538 | "Psr\\Http\\Server\\": "src/" 539 | } 540 | }, 541 | "notification-url": "https://packagist.org/downloads/", 542 | "license": [ 543 | "MIT" 544 | ], 545 | "authors": [ 546 | { 547 | "name": "PHP-FIG", 548 | "homepage": "http://www.php-fig.org/" 549 | } 550 | ], 551 | "description": "Common interface for HTTP server-side middleware", 552 | "keywords": [ 553 | "http", 554 | "http-interop", 555 | "middleware", 556 | "psr", 557 | "psr-15", 558 | "psr-7", 559 | "request", 560 | "response" 561 | ], 562 | "time": "2018-10-30T17:12:04+00:00" 563 | }, 564 | { 565 | "name": "symfony/polyfill-mbstring", 566 | "version": "v1.10.0", 567 | "source": { 568 | "type": "git", 569 | "url": "https://github.com/symfony/polyfill-mbstring.git", 570 | "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" 571 | }, 572 | "dist": { 573 | "type": "zip", 574 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", 575 | "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", 576 | "shasum": "" 577 | }, 578 | "require": { 579 | "php": ">=5.3.3" 580 | }, 581 | "suggest": { 582 | "ext-mbstring": "For best performance" 583 | }, 584 | "type": "library", 585 | "extra": { 586 | "branch-alias": { 587 | "dev-master": "1.9-dev" 588 | } 589 | }, 590 | "autoload": { 591 | "psr-4": { 592 | "Symfony\\Polyfill\\Mbstring\\": "" 593 | }, 594 | "files": [ 595 | "bootstrap.php" 596 | ] 597 | }, 598 | "notification-url": "https://packagist.org/downloads/", 599 | "license": [ 600 | "MIT" 601 | ], 602 | "authors": [ 603 | { 604 | "name": "Nicolas Grekas", 605 | "email": "p@tchwork.com" 606 | }, 607 | { 608 | "name": "Symfony Community", 609 | "homepage": "https://symfony.com/contributors" 610 | } 611 | ], 612 | "description": "Symfony polyfill for the Mbstring extension", 613 | "homepage": "https://symfony.com", 614 | "keywords": [ 615 | "compatibility", 616 | "mbstring", 617 | "polyfill", 618 | "portable", 619 | "shim" 620 | ], 621 | "time": "2018-09-21T13:07:52+00:00" 622 | }, 623 | { 624 | "name": "zendframework/zend-diactoros", 625 | "version": "2.1.1", 626 | "source": { 627 | "type": "git", 628 | "url": "https://github.com/zendframework/zend-diactoros.git", 629 | "reference": "c3c330192bc9cc51b7e9ce968ff721dc32ffa986" 630 | }, 631 | "dist": { 632 | "type": "zip", 633 | "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/c3c330192bc9cc51b7e9ce968ff721dc32ffa986", 634 | "reference": "c3c330192bc9cc51b7e9ce968ff721dc32ffa986", 635 | "shasum": "" 636 | }, 637 | "require": { 638 | "php": "^7.1", 639 | "psr/http-factory": "^1.0", 640 | "psr/http-message": "^1.0" 641 | }, 642 | "provide": { 643 | "psr/http-factory-implementation": "1.0", 644 | "psr/http-message-implementation": "1.0" 645 | }, 646 | "require-dev": { 647 | "ext-dom": "*", 648 | "ext-libxml": "*", 649 | "http-interop/http-factory-tests": "^0.5.0", 650 | "php-http/psr7-integration-tests": "dev-master", 651 | "phpunit/phpunit": "^7.0.2", 652 | "zendframework/zend-coding-standard": "~1.0.0" 653 | }, 654 | "type": "library", 655 | "extra": { 656 | "branch-alias": { 657 | "dev-master": "2.1.x-dev", 658 | "dev-develop": "2.2.x-dev", 659 | "dev-release-1.8": "1.8.x-dev" 660 | } 661 | }, 662 | "autoload": { 663 | "files": [ 664 | "src/functions/create_uploaded_file.php", 665 | "src/functions/marshal_headers_from_sapi.php", 666 | "src/functions/marshal_method_from_sapi.php", 667 | "src/functions/marshal_protocol_version_from_sapi.php", 668 | "src/functions/marshal_uri_from_sapi.php", 669 | "src/functions/normalize_server.php", 670 | "src/functions/normalize_uploaded_files.php", 671 | "src/functions/parse_cookie_header.php" 672 | ], 673 | "psr-4": { 674 | "Zend\\Diactoros\\": "src/" 675 | } 676 | }, 677 | "notification-url": "https://packagist.org/downloads/", 678 | "license": [ 679 | "BSD-3-Clause" 680 | ], 681 | "description": "PSR HTTP Message implementations", 682 | "keywords": [ 683 | "http", 684 | "psr", 685 | "psr-7" 686 | ], 687 | "time": "2019-01-05T20:13:32+00:00" 688 | } 689 | ], 690 | "packages-dev": [], 691 | "aliases": [], 692 | "minimum-stability": "stable", 693 | "stability-flags": [], 694 | "prefer-stable": false, 695 | "prefer-lowest": false, 696 | "platform": [], 697 | "platform-dev": [] 698 | } 699 | -------------------------------------------------------------------------------- /public/asset/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azjezz/web-php-mock-ups/7a0bacc20dbf33db7b20126cf37ea23859016c07/public/asset/img/logo.png -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | addServiceProvider(new ServiceProvider\LeagueServiceProvider()); 17 | 18 | $router = $container->get(League\Route\Router::class); 19 | 20 | // landing 21 | $router->get('/', function (Request $request) use($container): Response { 22 | $engine = $container->get(League\Plates\Engine::class); 23 | $releases = json_decode(file_get_contents(__DIR__ . '/../resources/releases.json'), true); 24 | $events = json_decode(file_get_contents(__DIR__ . '/../resources/events.json'), true); 25 | $articles = json_decode(file_get_contents(__DIR__ . '/../resources/articles.json'), true); 26 | return new Zend\Diactoros\Response\HtmlResponse($engine->render('landing', [ 27 | 'releases' => $releases, 28 | 'events' => $events, 29 | 'articles' => $articles 30 | ])); 31 | }); 32 | 33 | $router->get('/get-involved', function(Request $request) use($container): Response { 34 | $engine = $container->get(League\Plates\Engine::class); 35 | $contributors = json_decode(file_get_contents(__DIR__ . '/../resources/contributors.json'), true); 36 | return new Zend\Diactoros\Response\HtmlResponse($engine->render('get-involved', [ 37 | 'contributors' => $contributors, 38 | ])); 39 | }); 40 | 41 | // redirect /getting-started to 'what-is-php' section 42 | $router->get('/getting-started', function(): Response { 43 | return new Zend\Diactoros\Response\RedirectResponse('/getting-started/introduction/what-is-php'); 44 | }); 45 | 46 | // Pages that don't need any context. 47 | $pages = [ 48 | 'getting-started/introduction/what-is-php', 49 | 'getting-started/introduction/what-can-php-do', 50 | 'getting-started/installation', 51 | 'getting-started/installation/linux', 52 | 'getting-started/installation/windows', 53 | 'getting-started/installation/macos', 54 | 'getting-started/installation/other-platforms', 55 | ]; 56 | foreach ($pages as $page) { 57 | $router->get('/'.$page, function (Request $request) use($container, $page) : Response { 58 | $engine = $container->get(League\Plates\Engine::class); 59 | return new Zend\Diactoros\Response\HtmlResponse($engine->render($page)); 60 | }); 61 | } 62 | 63 | $request = Zend\Diactoros\ServerRequestFactory::fromGlobals(); 64 | $response = $router->dispatch($request); 65 | 66 | (new HttpEmitter\SapiEmitter)->emit($response); -------------------------------------------------------------------------------- /resources/articles.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "title": "Who pays for PHP?", 4 | "author": "Sebastian Bergmann, Arne Blankerts and Stefan Priebsch", 5 | "url": "https://thephp.cc/news/2019/01/who-pays-for-php" 6 | }, 7 | { 8 | "title": "The Death Star Version Constraint", 9 | "author": "Sebastian Bergmann", 10 | "url": "https://thephp.cc/news/2017/02/death-star-version-constraint" 11 | }, 12 | { 13 | "title": "The future of Zend", 14 | "author": "Rob Allen", 15 | "url": "https://thephp.cc/news/2018/10/the-future-of-zend" 16 | } 17 | ] -------------------------------------------------------------------------------- /resources/contributors.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "login": "weltling", 4 | "id": 22016, 5 | "node_id": "MDQ6VXNlcjIyMDE2", 6 | "avatar_url": "https://avatars0.githubusercontent.com/u/22016?v=4", 7 | "gravatar_id": "", 8 | "url": "https://api.github.com/users/weltling", 9 | "html_url": "https://github.com/weltling", 10 | "followers_url": "https://api.github.com/users/weltling/followers", 11 | "following_url": "https://api.github.com/users/weltling/following{/other_user}", 12 | "gists_url": "https://api.github.com/users/weltling/gists{/gist_id}", 13 | "starred_url": "https://api.github.com/users/weltling/starred{/owner}{/repo}", 14 | "subscriptions_url": "https://api.github.com/users/weltling/subscriptions", 15 | "organizations_url": "https://api.github.com/users/weltling/orgs", 16 | "repos_url": "https://api.github.com/users/weltling/repos", 17 | "events_url": "https://api.github.com/users/weltling/events{/privacy}", 18 | "received_events_url": "https://api.github.com/users/weltling/received_events", 19 | "type": "User", 20 | "site_admin": false, 21 | "contributions": 8257 22 | }, 23 | { 24 | "login": "laruence", 25 | "id": 382813, 26 | "node_id": "MDQ6VXNlcjM4MjgxMw==", 27 | "avatar_url": "https://avatars3.githubusercontent.com/u/382813?v=4", 28 | "gravatar_id": "", 29 | "url": "https://api.github.com/users/laruence", 30 | "html_url": "https://github.com/laruence", 31 | "followers_url": "https://api.github.com/users/laruence/followers", 32 | "following_url": "https://api.github.com/users/laruence/following{/other_user}", 33 | "gists_url": "https://api.github.com/users/laruence/gists{/gist_id}", 34 | "starred_url": "https://api.github.com/users/laruence/starred{/owner}{/repo}", 35 | "subscriptions_url": "https://api.github.com/users/laruence/subscriptions", 36 | "organizations_url": "https://api.github.com/users/laruence/orgs", 37 | "repos_url": "https://api.github.com/users/laruence/repos", 38 | "events_url": "https://api.github.com/users/laruence/events{/privacy}", 39 | "received_events_url": "https://api.github.com/users/laruence/received_events", 40 | "type": "User", 41 | "site_admin": false, 42 | "contributions": 4693 43 | }, 44 | { 45 | "login": "dstogov", 46 | "id": 2510034, 47 | "node_id": "MDQ6VXNlcjI1MTAwMzQ=", 48 | "avatar_url": "https://avatars3.githubusercontent.com/u/2510034?v=4", 49 | "gravatar_id": "", 50 | "url": "https://api.github.com/users/dstogov", 51 | "html_url": "https://github.com/dstogov", 52 | "followers_url": "https://api.github.com/users/dstogov/followers", 53 | "following_url": "https://api.github.com/users/dstogov/following{/other_user}", 54 | "gists_url": "https://api.github.com/users/dstogov/gists{/gist_id}", 55 | "starred_url": "https://api.github.com/users/dstogov/starred{/owner}{/repo}", 56 | "subscriptions_url": "https://api.github.com/users/dstogov/subscriptions", 57 | "organizations_url": "https://api.github.com/users/dstogov/orgs", 58 | "repos_url": "https://api.github.com/users/dstogov/repos", 59 | "events_url": "https://api.github.com/users/dstogov/events{/privacy}", 60 | "received_events_url": "https://api.github.com/users/dstogov/received_events", 61 | "type": "User", 62 | "site_admin": false, 63 | "contributions": 4390 64 | }, 65 | { 66 | "login": "tony2001", 67 | "id": 42386, 68 | "node_id": "MDQ6VXNlcjQyMzg2", 69 | "avatar_url": "https://avatars3.githubusercontent.com/u/42386?v=4", 70 | "gravatar_id": "", 71 | "url": "https://api.github.com/users/tony2001", 72 | "html_url": "https://github.com/tony2001", 73 | "followers_url": "https://api.github.com/users/tony2001/followers", 74 | "following_url": "https://api.github.com/users/tony2001/following{/other_user}", 75 | "gists_url": "https://api.github.com/users/tony2001/gists{/gist_id}", 76 | "starred_url": "https://api.github.com/users/tony2001/starred{/owner}{/repo}", 77 | "subscriptions_url": "https://api.github.com/users/tony2001/subscriptions", 78 | "organizations_url": "https://api.github.com/users/tony2001/orgs", 79 | "repos_url": "https://api.github.com/users/tony2001/repos", 80 | "events_url": "https://api.github.com/users/tony2001/events{/privacy}", 81 | "received_events_url": "https://api.github.com/users/tony2001/received_events", 82 | "type": "User", 83 | "site_admin": false, 84 | "contributions": 4114 85 | }, 86 | { 87 | "login": "smalyshev", 88 | "id": 155000, 89 | "node_id": "MDQ6VXNlcjE1NTAwMA==", 90 | "avatar_url": "https://avatars2.githubusercontent.com/u/155000?v=4", 91 | "gravatar_id": "", 92 | "url": "https://api.github.com/users/smalyshev", 93 | "html_url": "https://github.com/smalyshev", 94 | "followers_url": "https://api.github.com/users/smalyshev/followers", 95 | "following_url": "https://api.github.com/users/smalyshev/following{/other_user}", 96 | "gists_url": "https://api.github.com/users/smalyshev/gists{/gist_id}", 97 | "starred_url": "https://api.github.com/users/smalyshev/starred{/owner}{/repo}", 98 | "subscriptions_url": "https://api.github.com/users/smalyshev/subscriptions", 99 | "organizations_url": "https://api.github.com/users/smalyshev/orgs", 100 | "repos_url": "https://api.github.com/users/smalyshev/repos", 101 | "events_url": "https://api.github.com/users/smalyshev/events{/privacy}", 102 | "received_events_url": "https://api.github.com/users/smalyshev/received_events", 103 | "type": "User", 104 | "site_admin": false, 105 | "contributions": 3716 106 | }, 107 | { 108 | "login": "pierrejoye", 109 | "id": 282408, 110 | "node_id": "MDQ6VXNlcjI4MjQwOA==", 111 | "avatar_url": "https://avatars1.githubusercontent.com/u/282408?v=4", 112 | "gravatar_id": "", 113 | "url": "https://api.github.com/users/pierrejoye", 114 | "html_url": "https://github.com/pierrejoye", 115 | "followers_url": "https://api.github.com/users/pierrejoye/followers", 116 | "following_url": "https://api.github.com/users/pierrejoye/following{/other_user}", 117 | "gists_url": "https://api.github.com/users/pierrejoye/gists{/gist_id}", 118 | "starred_url": "https://api.github.com/users/pierrejoye/starred{/owner}{/repo}", 119 | "subscriptions_url": "https://api.github.com/users/pierrejoye/subscriptions", 120 | "organizations_url": "https://api.github.com/users/pierrejoye/orgs", 121 | "repos_url": "https://api.github.com/users/pierrejoye/repos", 122 | "events_url": "https://api.github.com/users/pierrejoye/events{/privacy}", 123 | "received_events_url": "https://api.github.com/users/pierrejoye/received_events", 124 | "type": "User", 125 | "site_admin": false, 126 | "contributions": 3498 127 | }, 128 | { 129 | "login": "felipensp", 130 | "id": 773947, 131 | "node_id": "MDQ6VXNlcjc3Mzk0Nw==", 132 | "avatar_url": "https://avatars1.githubusercontent.com/u/773947?v=4", 133 | "gravatar_id": "", 134 | "url": "https://api.github.com/users/felipensp", 135 | "html_url": "https://github.com/felipensp", 136 | "followers_url": "https://api.github.com/users/felipensp/followers", 137 | "following_url": "https://api.github.com/users/felipensp/following{/other_user}", 138 | "gists_url": "https://api.github.com/users/felipensp/gists{/gist_id}", 139 | "starred_url": "https://api.github.com/users/felipensp/starred{/owner}{/repo}", 140 | "subscriptions_url": "https://api.github.com/users/felipensp/subscriptions", 141 | "organizations_url": "https://api.github.com/users/felipensp/orgs", 142 | "repos_url": "https://api.github.com/users/felipensp/repos", 143 | "events_url": "https://api.github.com/users/felipensp/events{/privacy}", 144 | "received_events_url": "https://api.github.com/users/felipensp/received_events", 145 | "type": "User", 146 | "site_admin": false, 147 | "contributions": 3282 148 | }, 149 | { 150 | "login": "nikic", 151 | "id": 216080, 152 | "node_id": "MDQ6VXNlcjIxNjA4MA==", 153 | "avatar_url": "https://avatars3.githubusercontent.com/u/216080?v=4", 154 | "gravatar_id": "", 155 | "url": "https://api.github.com/users/nikic", 156 | "html_url": "https://github.com/nikic", 157 | "followers_url": "https://api.github.com/users/nikic/followers", 158 | "following_url": "https://api.github.com/users/nikic/following{/other_user}", 159 | "gists_url": "https://api.github.com/users/nikic/gists{/gist_id}", 160 | "starred_url": "https://api.github.com/users/nikic/starred{/owner}{/repo}", 161 | "subscriptions_url": "https://api.github.com/users/nikic/subscriptions", 162 | "organizations_url": "https://api.github.com/users/nikic/orgs", 163 | "repos_url": "https://api.github.com/users/nikic/repos", 164 | "events_url": "https://api.github.com/users/nikic/events{/privacy}", 165 | "received_events_url": "https://api.github.com/users/nikic/received_events", 166 | "type": "User", 167 | "site_admin": false, 168 | "contributions": 3152 169 | }, 170 | { 171 | "login": "zsuraski", 172 | "id": 2006098, 173 | "node_id": "MDQ6VXNlcjIwMDYwOTg=", 174 | "avatar_url": "https://avatars0.githubusercontent.com/u/2006098?v=4", 175 | "gravatar_id": "", 176 | "url": "https://api.github.com/users/zsuraski", 177 | "html_url": "https://github.com/zsuraski", 178 | "followers_url": "https://api.github.com/users/zsuraski/followers", 179 | "following_url": "https://api.github.com/users/zsuraski/following{/other_user}", 180 | "gists_url": "https://api.github.com/users/zsuraski/gists{/gist_id}", 181 | "starred_url": "https://api.github.com/users/zsuraski/starred{/owner}{/repo}", 182 | "subscriptions_url": "https://api.github.com/users/zsuraski/subscriptions", 183 | "organizations_url": "https://api.github.com/users/zsuraski/orgs", 184 | "repos_url": "https://api.github.com/users/zsuraski/repos", 185 | "events_url": "https://api.github.com/users/zsuraski/events{/privacy}", 186 | "received_events_url": "https://api.github.com/users/zsuraski/received_events", 187 | "type": "User", 188 | "site_admin": false, 189 | "contributions": 2188 190 | }, 191 | { 192 | "login": "andigutmans", 193 | "id": 989370, 194 | "node_id": "MDQ6VXNlcjk4OTM3MA==", 195 | "avatar_url": "https://avatars3.githubusercontent.com/u/989370?v=4", 196 | "gravatar_id": "", 197 | "url": "https://api.github.com/users/andigutmans", 198 | "html_url": "https://github.com/andigutmans", 199 | "followers_url": "https://api.github.com/users/andigutmans/followers", 200 | "following_url": "https://api.github.com/users/andigutmans/following{/other_user}", 201 | "gists_url": "https://api.github.com/users/andigutmans/gists{/gist_id}", 202 | "starred_url": "https://api.github.com/users/andigutmans/starred{/owner}{/repo}", 203 | "subscriptions_url": "https://api.github.com/users/andigutmans/subscriptions", 204 | "organizations_url": "https://api.github.com/users/andigutmans/orgs", 205 | "repos_url": "https://api.github.com/users/andigutmans/repos", 206 | "events_url": "https://api.github.com/users/andigutmans/events{/privacy}", 207 | "received_events_url": "https://api.github.com/users/andigutmans/received_events", 208 | "type": "User", 209 | "site_admin": false, 210 | "contributions": 1681 211 | }, 212 | { 213 | "login": "wez", 214 | "id": 117777, 215 | "node_id": "MDQ6VXNlcjExNzc3Nw==", 216 | "avatar_url": "https://avatars1.githubusercontent.com/u/117777?v=4", 217 | "gravatar_id": "", 218 | "url": "https://api.github.com/users/wez", 219 | "html_url": "https://github.com/wez", 220 | "followers_url": "https://api.github.com/users/wez/followers", 221 | "following_url": "https://api.github.com/users/wez/following{/other_user}", 222 | "gists_url": "https://api.github.com/users/wez/gists{/gist_id}", 223 | "starred_url": "https://api.github.com/users/wez/starred{/owner}{/repo}", 224 | "subscriptions_url": "https://api.github.com/users/wez/subscriptions", 225 | "organizations_url": "https://api.github.com/users/wez/orgs", 226 | "repos_url": "https://api.github.com/users/wez/repos", 227 | "events_url": "https://api.github.com/users/wez/events{/privacy}", 228 | "received_events_url": "https://api.github.com/users/wez/received_events", 229 | "type": "User", 230 | "site_admin": false, 231 | "contributions": 1535 232 | }, 233 | { 234 | "login": "krakjoe", 235 | "id": 2236138, 236 | "node_id": "MDQ6VXNlcjIyMzYxMzg=", 237 | "avatar_url": "https://avatars2.githubusercontent.com/u/2236138?v=4", 238 | "gravatar_id": "", 239 | "url": "https://api.github.com/users/krakjoe", 240 | "html_url": "https://github.com/krakjoe", 241 | "followers_url": "https://api.github.com/users/krakjoe/followers", 242 | "following_url": "https://api.github.com/users/krakjoe/following{/other_user}", 243 | "gists_url": "https://api.github.com/users/krakjoe/gists{/gist_id}", 244 | "starred_url": "https://api.github.com/users/krakjoe/starred{/owner}{/repo}", 245 | "subscriptions_url": "https://api.github.com/users/krakjoe/subscriptions", 246 | "organizations_url": "https://api.github.com/users/krakjoe/orgs", 247 | "repos_url": "https://api.github.com/users/krakjoe/repos", 248 | "events_url": "https://api.github.com/users/krakjoe/events{/privacy}", 249 | "received_events_url": "https://api.github.com/users/krakjoe/received_events", 250 | "type": "User", 251 | "site_admin": false, 252 | "contributions": 1512 253 | }, 254 | { 255 | "login": "rlerdorf", 256 | "id": 54641, 257 | "node_id": "MDQ6VXNlcjU0NjQx", 258 | "avatar_url": "https://avatars3.githubusercontent.com/u/54641?v=4", 259 | "gravatar_id": "", 260 | "url": "https://api.github.com/users/rlerdorf", 261 | "html_url": "https://github.com/rlerdorf", 262 | "followers_url": "https://api.github.com/users/rlerdorf/followers", 263 | "following_url": "https://api.github.com/users/rlerdorf/following{/other_user}", 264 | "gists_url": "https://api.github.com/users/rlerdorf/gists{/gist_id}", 265 | "starred_url": "https://api.github.com/users/rlerdorf/starred{/owner}{/repo}", 266 | "subscriptions_url": "https://api.github.com/users/rlerdorf/subscriptions", 267 | "organizations_url": "https://api.github.com/users/rlerdorf/orgs", 268 | "repos_url": "https://api.github.com/users/rlerdorf/repos", 269 | "events_url": "https://api.github.com/users/rlerdorf/events{/privacy}", 270 | "received_events_url": "https://api.github.com/users/rlerdorf/received_events", 271 | "type": "User", 272 | "site_admin": false, 273 | "contributions": 1334 274 | }, 275 | { 276 | "login": "remicollet", 277 | "id": 270445, 278 | "node_id": "MDQ6VXNlcjI3MDQ0NQ==", 279 | "avatar_url": "https://avatars2.githubusercontent.com/u/270445?v=4", 280 | "gravatar_id": "", 281 | "url": "https://api.github.com/users/remicollet", 282 | "html_url": "https://github.com/remicollet", 283 | "followers_url": "https://api.github.com/users/remicollet/followers", 284 | "following_url": "https://api.github.com/users/remicollet/following{/other_user}", 285 | "gists_url": "https://api.github.com/users/remicollet/gists{/gist_id}", 286 | "starred_url": "https://api.github.com/users/remicollet/starred{/owner}{/repo}", 287 | "subscriptions_url": "https://api.github.com/users/remicollet/subscriptions", 288 | "organizations_url": "https://api.github.com/users/remicollet/orgs", 289 | "repos_url": "https://api.github.com/users/remicollet/repos", 290 | "events_url": "https://api.github.com/users/remicollet/events{/privacy}", 291 | "received_events_url": "https://api.github.com/users/remicollet/received_events", 292 | "type": "User", 293 | "site_admin": false, 294 | "contributions": 1321 295 | }, 296 | { 297 | "login": "cjbj", 298 | "id": 200778, 299 | "node_id": "MDQ6VXNlcjIwMDc3OA==", 300 | "avatar_url": "https://avatars1.githubusercontent.com/u/200778?v=4", 301 | "gravatar_id": "", 302 | "url": "https://api.github.com/users/cjbj", 303 | "html_url": "https://github.com/cjbj", 304 | "followers_url": "https://api.github.com/users/cjbj/followers", 305 | "following_url": "https://api.github.com/users/cjbj/following{/other_user}", 306 | "gists_url": "https://api.github.com/users/cjbj/gists{/gist_id}", 307 | "starred_url": "https://api.github.com/users/cjbj/starred{/owner}{/repo}", 308 | "subscriptions_url": "https://api.github.com/users/cjbj/subscriptions", 309 | "organizations_url": "https://api.github.com/users/cjbj/orgs", 310 | "repos_url": "https://api.github.com/users/cjbj/repos", 311 | "events_url": "https://api.github.com/users/cjbj/events{/privacy}", 312 | "received_events_url": "https://api.github.com/users/cjbj/received_events", 313 | "type": "User", 314 | "site_admin": false, 315 | "contributions": 1297 316 | }, 317 | { 318 | "login": "cmb69", 319 | "id": 2306138, 320 | "node_id": "MDQ6VXNlcjIzMDYxMzg=", 321 | "avatar_url": "https://avatars1.githubusercontent.com/u/2306138?v=4", 322 | "gravatar_id": "", 323 | "url": "https://api.github.com/users/cmb69", 324 | "html_url": "https://github.com/cmb69", 325 | "followers_url": "https://api.github.com/users/cmb69/followers", 326 | "following_url": "https://api.github.com/users/cmb69/following{/other_user}", 327 | "gists_url": "https://api.github.com/users/cmb69/gists{/gist_id}", 328 | "starred_url": "https://api.github.com/users/cmb69/starred{/owner}{/repo}", 329 | "subscriptions_url": "https://api.github.com/users/cmb69/subscriptions", 330 | "organizations_url": "https://api.github.com/users/cmb69/orgs", 331 | "repos_url": "https://api.github.com/users/cmb69/repos", 332 | "events_url": "https://api.github.com/users/cmb69/events{/privacy}", 333 | "received_events_url": "https://api.github.com/users/cmb69/received_events", 334 | "type": "User", 335 | "site_admin": false, 336 | "contributions": 1136 337 | }, 338 | { 339 | "login": "bwoebi", 340 | "id": 3154871, 341 | "node_id": "MDQ6VXNlcjMxNTQ4NzE=", 342 | "avatar_url": "https://avatars2.githubusercontent.com/u/3154871?v=4", 343 | "gravatar_id": "", 344 | "url": "https://api.github.com/users/bwoebi", 345 | "html_url": "https://github.com/bwoebi", 346 | "followers_url": "https://api.github.com/users/bwoebi/followers", 347 | "following_url": "https://api.github.com/users/bwoebi/following{/other_user}", 348 | "gists_url": "https://api.github.com/users/bwoebi/gists{/gist_id}", 349 | "starred_url": "https://api.github.com/users/bwoebi/starred{/owner}{/repo}", 350 | "subscriptions_url": "https://api.github.com/users/bwoebi/subscriptions", 351 | "organizations_url": "https://api.github.com/users/bwoebi/orgs", 352 | "repos_url": "https://api.github.com/users/bwoebi/repos", 353 | "events_url": "https://api.github.com/users/bwoebi/events{/privacy}", 354 | "received_events_url": "https://api.github.com/users/bwoebi/received_events", 355 | "type": "User", 356 | "site_admin": false, 357 | "contributions": 1081 358 | }, 359 | { 360 | "login": "johannes", 361 | "id": 44364, 362 | "node_id": "MDQ6VXNlcjQ0MzY0", 363 | "avatar_url": "https://avatars0.githubusercontent.com/u/44364?v=4", 364 | "gravatar_id": "", 365 | "url": "https://api.github.com/users/johannes", 366 | "html_url": "https://github.com/johannes", 367 | "followers_url": "https://api.github.com/users/johannes/followers", 368 | "following_url": "https://api.github.com/users/johannes/following{/other_user}", 369 | "gists_url": "https://api.github.com/users/johannes/gists{/gist_id}", 370 | "starred_url": "https://api.github.com/users/johannes/starred{/owner}{/repo}", 371 | "subscriptions_url": "https://api.github.com/users/johannes/subscriptions", 372 | "organizations_url": "https://api.github.com/users/johannes/orgs", 373 | "repos_url": "https://api.github.com/users/johannes/repos", 374 | "events_url": "https://api.github.com/users/johannes/events{/privacy}", 375 | "received_events_url": "https://api.github.com/users/johannes/received_events", 376 | "type": "User", 377 | "site_admin": false, 378 | "contributions": 947 379 | }, 380 | { 381 | "login": "stigsb", 382 | "id": 169939, 383 | "node_id": "MDQ6VXNlcjE2OTkzOQ==", 384 | "avatar_url": "https://avatars0.githubusercontent.com/u/169939?v=4", 385 | "gravatar_id": "", 386 | "url": "https://api.github.com/users/stigsb", 387 | "html_url": "https://github.com/stigsb", 388 | "followers_url": "https://api.github.com/users/stigsb/followers", 389 | "following_url": "https://api.github.com/users/stigsb/following{/other_user}", 390 | "gists_url": "https://api.github.com/users/stigsb/gists{/gist_id}", 391 | "starred_url": "https://api.github.com/users/stigsb/starred{/owner}{/repo}", 392 | "subscriptions_url": "https://api.github.com/users/stigsb/subscriptions", 393 | "organizations_url": "https://api.github.com/users/stigsb/orgs", 394 | "repos_url": "https://api.github.com/users/stigsb/repos", 395 | "events_url": "https://api.github.com/users/stigsb/events{/privacy}", 396 | "received_events_url": "https://api.github.com/users/stigsb/received_events", 397 | "type": "User", 398 | "site_admin": false, 399 | "contributions": 873 400 | }, 401 | { 402 | "login": "bjori", 403 | "id": 72407, 404 | "node_id": "MDQ6VXNlcjcyNDA3", 405 | "avatar_url": "https://avatars1.githubusercontent.com/u/72407?v=4", 406 | "gravatar_id": "", 407 | "url": "https://api.github.com/users/bjori", 408 | "html_url": "https://github.com/bjori", 409 | "followers_url": "https://api.github.com/users/bjori/followers", 410 | "following_url": "https://api.github.com/users/bjori/following{/other_user}", 411 | "gists_url": "https://api.github.com/users/bjori/gists{/gist_id}", 412 | "starred_url": "https://api.github.com/users/bjori/starred{/owner}{/repo}", 413 | "subscriptions_url": "https://api.github.com/users/bjori/subscriptions", 414 | "organizations_url": "https://api.github.com/users/bjori/orgs", 415 | "repos_url": "https://api.github.com/users/bjori/repos", 416 | "events_url": "https://api.github.com/users/bjori/events{/privacy}", 417 | "received_events_url": "https://api.github.com/users/bjori/received_events", 418 | "type": "User", 419 | "site_admin": false, 420 | "contributions": 836 421 | }, 422 | { 423 | "login": "sgolemon", 424 | "id": 812538, 425 | "node_id": "MDQ6VXNlcjgxMjUzOA==", 426 | "avatar_url": "https://avatars1.githubusercontent.com/u/812538?v=4", 427 | "gravatar_id": "", 428 | "url": "https://api.github.com/users/sgolemon", 429 | "html_url": "https://github.com/sgolemon", 430 | "followers_url": "https://api.github.com/users/sgolemon/followers", 431 | "following_url": "https://api.github.com/users/sgolemon/following{/other_user}", 432 | "gists_url": "https://api.github.com/users/sgolemon/gists{/gist_id}", 433 | "starred_url": "https://api.github.com/users/sgolemon/starred{/owner}{/repo}", 434 | "subscriptions_url": "https://api.github.com/users/sgolemon/subscriptions", 435 | "organizations_url": "https://api.github.com/users/sgolemon/orgs", 436 | "repos_url": "https://api.github.com/users/sgolemon/repos", 437 | "events_url": "https://api.github.com/users/sgolemon/events{/privacy}", 438 | "received_events_url": "https://api.github.com/users/sgolemon/received_events", 439 | "type": "User", 440 | "site_admin": false, 441 | "contributions": 836 442 | }, 443 | { 444 | "login": "KalleZ", 445 | "id": 147050, 446 | "node_id": "MDQ6VXNlcjE0NzA1MA==", 447 | "avatar_url": "https://avatars3.githubusercontent.com/u/147050?v=4", 448 | "gravatar_id": "", 449 | "url": "https://api.github.com/users/KalleZ", 450 | "html_url": "https://github.com/KalleZ", 451 | "followers_url": "https://api.github.com/users/KalleZ/followers", 452 | "following_url": "https://api.github.com/users/KalleZ/following{/other_user}", 453 | "gists_url": "https://api.github.com/users/KalleZ/gists{/gist_id}", 454 | "starred_url": "https://api.github.com/users/KalleZ/starred{/owner}{/repo}", 455 | "subscriptions_url": "https://api.github.com/users/KalleZ/subscriptions", 456 | "organizations_url": "https://api.github.com/users/KalleZ/orgs", 457 | "repos_url": "https://api.github.com/users/KalleZ/repos", 458 | "events_url": "https://api.github.com/users/KalleZ/events{/privacy}", 459 | "received_events_url": "https://api.github.com/users/KalleZ/received_events", 460 | "type": "User", 461 | "site_admin": false, 462 | "contributions": 808 463 | }, 464 | { 465 | "login": "Tyrael", 466 | "id": 199149, 467 | "node_id": "MDQ6VXNlcjE5OTE0OQ==", 468 | "avatar_url": "https://avatars2.githubusercontent.com/u/199149?v=4", 469 | "gravatar_id": "", 470 | "url": "https://api.github.com/users/Tyrael", 471 | "html_url": "https://github.com/Tyrael", 472 | "followers_url": "https://api.github.com/users/Tyrael/followers", 473 | "following_url": "https://api.github.com/users/Tyrael/following{/other_user}", 474 | "gists_url": "https://api.github.com/users/Tyrael/gists{/gist_id}", 475 | "starred_url": "https://api.github.com/users/Tyrael/starred{/owner}{/repo}", 476 | "subscriptions_url": "https://api.github.com/users/Tyrael/subscriptions", 477 | "organizations_url": "https://api.github.com/users/Tyrael/orgs", 478 | "repos_url": "https://api.github.com/users/Tyrael/repos", 479 | "events_url": "https://api.github.com/users/Tyrael/events{/privacy}", 480 | "received_events_url": "https://api.github.com/users/Tyrael/received_events", 481 | "type": "User", 482 | "site_admin": false, 483 | "contributions": 780 484 | }, 485 | { 486 | "login": "m6w6", 487 | "id": 1265282, 488 | "node_id": "MDQ6VXNlcjEyNjUyODI=", 489 | "avatar_url": "https://avatars0.githubusercontent.com/u/1265282?v=4", 490 | "gravatar_id": "", 491 | "url": "https://api.github.com/users/m6w6", 492 | "html_url": "https://github.com/m6w6", 493 | "followers_url": "https://api.github.com/users/m6w6/followers", 494 | "following_url": "https://api.github.com/users/m6w6/following{/other_user}", 495 | "gists_url": "https://api.github.com/users/m6w6/gists{/gist_id}", 496 | "starred_url": "https://api.github.com/users/m6w6/starred{/owner}{/repo}", 497 | "subscriptions_url": "https://api.github.com/users/m6w6/subscriptions", 498 | "organizations_url": "https://api.github.com/users/m6w6/orgs", 499 | "repos_url": "https://api.github.com/users/m6w6/repos", 500 | "events_url": "https://api.github.com/users/m6w6/events{/privacy}", 501 | "received_events_url": "https://api.github.com/users/m6w6/received_events", 502 | "type": "User", 503 | "site_admin": false, 504 | "contributions": 657 505 | }, 506 | { 507 | "login": "cataphract", 508 | "id": 496394, 509 | "node_id": "MDQ6VXNlcjQ5NjM5NA==", 510 | "avatar_url": "https://avatars0.githubusercontent.com/u/496394?v=4", 511 | "gravatar_id": "", 512 | "url": "https://api.github.com/users/cataphract", 513 | "html_url": "https://github.com/cataphract", 514 | "followers_url": "https://api.github.com/users/cataphract/followers", 515 | "following_url": "https://api.github.com/users/cataphract/following{/other_user}", 516 | "gists_url": "https://api.github.com/users/cataphract/gists{/gist_id}", 517 | "starred_url": "https://api.github.com/users/cataphract/starred{/owner}{/repo}", 518 | "subscriptions_url": "https://api.github.com/users/cataphract/subscriptions", 519 | "organizations_url": "https://api.github.com/users/cataphract/orgs", 520 | "repos_url": "https://api.github.com/users/cataphract/repos", 521 | "events_url": "https://api.github.com/users/cataphract/events{/privacy}", 522 | "received_events_url": "https://api.github.com/users/cataphract/received_events", 523 | "type": "User", 524 | "site_admin": false, 525 | "contributions": 652 526 | }, 527 | { 528 | "login": "nunoplopes", 529 | "id": 2998477, 530 | "node_id": "MDQ6VXNlcjI5OTg0Nzc=", 531 | "avatar_url": "https://avatars1.githubusercontent.com/u/2998477?v=4", 532 | "gravatar_id": "", 533 | "url": "https://api.github.com/users/nunoplopes", 534 | "html_url": "https://github.com/nunoplopes", 535 | "followers_url": "https://api.github.com/users/nunoplopes/followers", 536 | "following_url": "https://api.github.com/users/nunoplopes/following{/other_user}", 537 | "gists_url": "https://api.github.com/users/nunoplopes/gists{/gist_id}", 538 | "starred_url": "https://api.github.com/users/nunoplopes/starred{/owner}{/repo}", 539 | "subscriptions_url": "https://api.github.com/users/nunoplopes/subscriptions", 540 | "organizations_url": "https://api.github.com/users/nunoplopes/orgs", 541 | "repos_url": "https://api.github.com/users/nunoplopes/repos", 542 | "events_url": "https://api.github.com/users/nunoplopes/events{/privacy}", 543 | "received_events_url": "https://api.github.com/users/nunoplopes/received_events", 544 | "type": "User", 545 | "site_admin": false, 546 | "contributions": 621 547 | }, 548 | { 549 | "login": "sebastianbergmann", 550 | "id": 25218, 551 | "node_id": "MDQ6VXNlcjI1MjE4", 552 | "avatar_url": "https://avatars1.githubusercontent.com/u/25218?v=4", 553 | "gravatar_id": "", 554 | "url": "https://api.github.com/users/sebastianbergmann", 555 | "html_url": "https://github.com/sebastianbergmann", 556 | "followers_url": "https://api.github.com/users/sebastianbergmann/followers", 557 | "following_url": "https://api.github.com/users/sebastianbergmann/following{/other_user}", 558 | "gists_url": "https://api.github.com/users/sebastianbergmann/gists{/gist_id}", 559 | "starred_url": "https://api.github.com/users/sebastianbergmann/starred{/owner}{/repo}", 560 | "subscriptions_url": "https://api.github.com/users/sebastianbergmann/subscriptions", 561 | "organizations_url": "https://api.github.com/users/sebastianbergmann/orgs", 562 | "repos_url": "https://api.github.com/users/sebastianbergmann/repos", 563 | "events_url": "https://api.github.com/users/sebastianbergmann/events{/privacy}", 564 | "received_events_url": "https://api.github.com/users/sebastianbergmann/received_events", 565 | "type": "User", 566 | "site_admin": false, 567 | "contributions": 566 568 | }, 569 | { 570 | "login": "bukka", 571 | "id": 137594, 572 | "node_id": "MDQ6VXNlcjEzNzU5NA==", 573 | "avatar_url": "https://avatars2.githubusercontent.com/u/137594?v=4", 574 | "gravatar_id": "", 575 | "url": "https://api.github.com/users/bukka", 576 | "html_url": "https://github.com/bukka", 577 | "followers_url": "https://api.github.com/users/bukka/followers", 578 | "following_url": "https://api.github.com/users/bukka/following{/other_user}", 579 | "gists_url": "https://api.github.com/users/bukka/gists{/gist_id}", 580 | "starred_url": "https://api.github.com/users/bukka/starred{/owner}{/repo}", 581 | "subscriptions_url": "https://api.github.com/users/bukka/subscriptions", 582 | "organizations_url": "https://api.github.com/users/bukka/orgs", 583 | "repos_url": "https://api.github.com/users/bukka/repos", 584 | "events_url": "https://api.github.com/users/bukka/events{/privacy}", 585 | "received_events_url": "https://api.github.com/users/bukka/received_events", 586 | "type": "User", 587 | "site_admin": false, 588 | "contributions": 533 589 | }, 590 | { 591 | "login": "derickr", 592 | "id": 208074, 593 | "node_id": "MDQ6VXNlcjIwODA3NA==", 594 | "avatar_url": "https://avatars3.githubusercontent.com/u/208074?v=4", 595 | "gravatar_id": "", 596 | "url": "https://api.github.com/users/derickr", 597 | "html_url": "https://github.com/derickr", 598 | "followers_url": "https://api.github.com/users/derickr/followers", 599 | "following_url": "https://api.github.com/users/derickr/following{/other_user}", 600 | "gists_url": "https://api.github.com/users/derickr/gists{/gist_id}", 601 | "starred_url": "https://api.github.com/users/derickr/starred{/owner}{/repo}", 602 | "subscriptions_url": "https://api.github.com/users/derickr/subscriptions", 603 | "organizations_url": "https://api.github.com/users/derickr/orgs", 604 | "repos_url": "https://api.github.com/users/derickr/repos", 605 | "events_url": "https://api.github.com/users/derickr/events{/privacy}", 606 | "received_events_url": "https://api.github.com/users/derickr/received_events", 607 | "type": "User", 608 | "site_admin": false, 609 | "contributions": 527 610 | }, 611 | { 612 | "login": "fmk", 613 | "id": 698470, 614 | "node_id": "MDQ6VXNlcjY5ODQ3MA==", 615 | "avatar_url": "https://avatars1.githubusercontent.com/u/698470?v=4", 616 | "gravatar_id": "", 617 | "url": "https://api.github.com/users/fmk", 618 | "html_url": "https://github.com/fmk", 619 | "followers_url": "https://api.github.com/users/fmk/followers", 620 | "following_url": "https://api.github.com/users/fmk/following{/other_user}", 621 | "gists_url": "https://api.github.com/users/fmk/gists{/gist_id}", 622 | "starred_url": "https://api.github.com/users/fmk/starred{/owner}{/repo}", 623 | "subscriptions_url": "https://api.github.com/users/fmk/subscriptions", 624 | "organizations_url": "https://api.github.com/users/fmk/orgs", 625 | "repos_url": "https://api.github.com/users/fmk/repos", 626 | "events_url": "https://api.github.com/users/fmk/events{/privacy}", 627 | "received_events_url": "https://api.github.com/users/fmk/received_events", 628 | "type": "User", 629 | "site_admin": false, 630 | "contributions": 519 631 | } 632 | ] 633 | -------------------------------------------------------------------------------- /resources/events.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "img": "https://secure.php.net/images/news/phptek2019.jpg", 4 | "name": "PHP[TEK] 2019", 5 | "date": "May 21-23, 2019", 6 | "url": "https://secure.php.net/archive/2019.php#id2019-01-29-1" 7 | }, 8 | { 9 | "img": "https://secure.php.net/images/news/laracon-online-2019.png", 10 | "name": "Laracon Online", 11 | "date": "March 6, 2019", 12 | "url": "https://php.net/archive/2019.php#id2019-01-22-1" 13 | } 14 | ] -------------------------------------------------------------------------------- /resources/releases.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "version": "7.3.1", 4 | "body": "The PHP development team announces the immediate availability of PHP 7.3.1.
This is a security release which also contains several bug fixes.

All PHP 7.3 users are encouraged to upgrade to this version.

For source downloads of PHP 7.3.1 please visit our downloads page, Windows source and binaries can be found on the windows section.
" 5 | }, 6 | { 7 | "version": "7.1.26", 8 | "body": "The PHP development team announces the immediate availability of PHP 7.1.26.
This is a security release which also contains several bug fixes.

All PHP 7.1 users are encouraged to upgrade to this version.

For source downloads of PHP 7.1.26 please visit our downloads page, Windows source and binaries can be found on the windows section.
" 9 | } 10 | ] -------------------------------------------------------------------------------- /screenshots/get-involved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azjezz/web-php-mock-ups/7a0bacc20dbf33db7b20126cf37ea23859016c07/screenshots/get-involved.png -------------------------------------------------------------------------------- /screenshots/getting-started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azjezz/web-php-mock-ups/7a0bacc20dbf33db7b20126cf37ea23859016c07/screenshots/getting-started.png -------------------------------------------------------------------------------- /screenshots/installation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azjezz/web-php-mock-ups/7a0bacc20dbf33db7b20126cf37ea23859016c07/screenshots/installation.png -------------------------------------------------------------------------------- /screenshots/landing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azjezz/web-php-mock-ups/7a0bacc20dbf33db7b20126cf37ea23859016c07/screenshots/landing.png -------------------------------------------------------------------------------- /screenshots/windows-installation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azjezz/web-php-mock-ups/7a0bacc20dbf33db7b20126cf37ea23859016c07/screenshots/windows-installation.png -------------------------------------------------------------------------------- /src/ServiceProvider/LeagueServiceProvider.php: -------------------------------------------------------------------------------- 1 | getContainer(); 17 | 18 | $container->share(Route\Router::class, function() use ($container) { 19 | $router = new Route\Router(); 20 | $startegy = new Route\Strategy\ApplicationStrategy(); 21 | $startegy->setContainer($container); 22 | $router->setStrategy($startegy); 23 | return $router; 24 | }); 25 | 26 | $container->share(Plates\Engine::class, function () use ($container) { 27 | return new Plates\Engine(__DIR__.'/../../templates'); 28 | }); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /templates/component/article-card.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
e($title) ?>
5 | by e($author) ?>. 6 |
7 | 10 |
-------------------------------------------------------------------------------- /templates/component/contributor-card.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 | 7 |
8 |
9 |
10 |
11 | 14 |
-------------------------------------------------------------------------------- /templates/component/event-card.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 |
6 |
7 |
e($name) ?>
8 |
e($date) ?>
9 |
10 | 13 |
-------------------------------------------------------------------------------- /templates/component/release-card.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
PHP e($version) ?>
5 |
Release Announcement
6 |
7 | 11 |
-------------------------------------------------------------------------------- /templates/get-involved.php: -------------------------------------------------------------------------------- 1 | layout('layout/basic', ['title' => 'Get Involved']) ?> 2 | 3 |
4 |

Contributing to PHP

5 |
6 | Anybody who programs in PHP can be a contributing member of the community that develops and deploys it; the task of 7 | deploying PHP, documentation and associated websites is a never ending one.
8 | With every release, or release candidate comes a wave of work, which takes a lot of organization and co-ordination.
9 |
10 | 11 | With the introduction of release managers comes a smoother release process, but help is still needed: testing 12 | release candidates, finding and squashing bugs in tests, documentation, and sources.

13 |
14 |
15 |

Four Best Ways to Contribute

16 |
17 |
    18 |
  1. Running test suites in RC and release distributions of PHP
  2. 19 |
  3. Help finding and diagnosing failed tests, see the phpt documentation
  4. 20 |
  5. Filing and resolving bug reports at bugs.php.net
  6. 21 |
  7. Help maintain and or translate documentation files at edit.php.net. Check out our guide for contributors.
  8. 22 |
23 |
24 |
25 |

Development of the PHP source

26 |
27 | Someone hoping to become involved in the maintenance and development of the source should be experienced in all of 28 | the areas mentioned above, as this creates a strong team; everyone knows how every other part of the project works.

29 | 30 | You will also need experience in C programming as PHP is written entirely in C. 31 |
32 |
33 |
34 |
35 |

GitHub Contributors

36 |
37 |
38 | 39 |
40 | fetch('component/contributor-card', [ 41 | 'contributor' => $contributor 42 | ]) ?> 43 |
44 | 45 |
46 |
47 | -------------------------------------------------------------------------------- /templates/getting-started/installation.php: -------------------------------------------------------------------------------- 1 | layout('getting-started/layout', [ 2 | 'title' => 'Getting Start - Installation', 3 | 'section' => 'Installation' 4 | ]) ?> 5 | 6 |

General Installation Considerations

7 |

8 | Before starting the installation, first you need to know what do you want to use PHP for. There are three main fields you can use PHP, as described in the What can PHP do? section:
9 | 10 |

15 | 16 | For the first and most common form, you need three things: PHP itself, a web server and a web browser.
17 | You probably already have a web browser, and depending on your operating system setup, you may also have a web server (e.g. Apache on Linux and macOS; IIS on Windows).
18 | You may also rent webspace at a company.
19 | This way, you don't need to set up anything on your own, only write your PHP scripts, upload it to the server you rent, and see the results in your browser.

20 | 21 | In case of setting up the server and PHP on your own, you have two choices for the method of connecting PHP to the server.
22 | For many servers PHP has a direct module interface (also called SAPI).
23 | These servers include Apache, Microsoft Internet Information Server, Netscape and iPlanet servers. Many other servers have support for ISAPI, the Microsoft module interface (OmniHTTPd for example).
24 | If PHP has no module support for your web server, you can always use it as a CGI or FastCGI processor.
25 | This means you set up your server to use the CGI executable of PHP to process all PHP file requests on the server.

26 | 27 | If you are also interested in using PHP for command line scripting (e.g. write scripts autogenerating some images for you offline, or processing text files depending on some arguments you pass to them), you always need the command line executable.
28 | For more information, read the section about writing command line PHP applications.
29 | In this case, you need no server and no browser.

30 | 31 | With PHP you can also write desktop GUI applications using the PHP-GTK extension or the PHP-GUI library.
32 | This is a completely different approach than writing web pages, as you do not output any HTML, but manage windows and objects within them.
33 | For more information about PHP-GTK and PHP-GUI, please visit the GUI section here. 34 | PHP-GTK and PHP-GUI are not included in the official PHP distribution.

35 | 36 | From now on, this section deals with setting up PHP for web servers on Unix and Windows with server module interfaces and CGI executables.
37 | You will also find information on the command line executable in the following sections.

38 |

39 | -------------------------------------------------------------------------------- /templates/getting-started/installation/linux.php: -------------------------------------------------------------------------------- 1 | layout('getting-started/layout', [ 2 | 'title' => 'Getting Start - Installation', 3 | 'section' => 'Installation' 4 | ]) ?> 5 | 6 |

Linux Installation

7 | -------------------------------------------------------------------------------- /templates/getting-started/installation/macos.php: -------------------------------------------------------------------------------- 1 | layout('getting-started/layout', [ 2 | 'title' => 'Getting Start - Installation', 3 | 'section' => 'Installation' 4 | ]) ?> 5 | 6 |

Mac OS Installation

7 | -------------------------------------------------------------------------------- /templates/getting-started/installation/other-platforms.php: -------------------------------------------------------------------------------- 1 | layout('getting-started/layout', [ 2 | 'title' => 'Getting Start - Installation', 3 | 'section' => 'Installation' 4 | ]) ?> 5 | 6 |

Other Platforms

7 | -------------------------------------------------------------------------------- /templates/getting-started/installation/windows.php: -------------------------------------------------------------------------------- 1 | layout('getting-started/layout', [ 2 | 'title' => 'Getting Start - Installation', 3 | 'section' => 'Installation' 4 | ]) ?> 5 | 6 |

Windows Installation

7 | 8 | 9 |

All-in-One Packages

10 |

11 | There are some excellent all-in-one Windows distributions that contain Apache, PHP, MySQL and other applications in a single installation file, e.g. XAMPP (including a Mac version), WampServer and Web.Developer. There is nothing wrong with using these packages, although manually installing Apache and PHP will help you learn more about the system and its configuration options.
12 |

13 | 14 | 15 |

Using Package Manager

16 |

17 | You can alternatively download PHP using scoop or chocolatey package managers. 18 |

19 | 20 |
Scoop
21 |

22 | To install PHP using Scoop package manager, run the following command from the command line or from PowerShell : 23 |

C:\> scoop install php
24 | Or you can download the thread safe version of php using : 25 |
C:\> scoop install php-ts
26 |

27 |
Chocolatey
28 |

29 | Package Parameters : 30 |

35 | These parameters can be passed to the installer with the use of --params.
36 | For example: --params '"/ThreadSafe ""/InstallDir:C:\PHP"""'.

37 | To install PHP, run the following command from the command line or from PowerShell : 38 |
C:\> choco install php
39 | more information can be found in the chocolatey php package page. 40 |

41 | 42 | 43 |

Manual Installation

44 |

45 | Manual installation offers several benefits: 46 |

50 |

51 | 52 |
Step 1: Download the files
53 |

54 | Download the latest PHP ZIP package from the download page.
55 | 56 | As always, virus scan the file and check its MD5 checksum using a tool such as fsum.
57 |

58 | 59 |
Step 2: Extract the files
60 |

61 | We will install the PHP files to C:\php, so create that folder and extract the contents of the ZIP file into it.
62 | PHP can be installed anywhere on your system, but you will need to change the paths referenced in the following steps.
63 |

64 | 65 |
Step 3: Configure php.ini
66 |

67 | Copy C:\php\php.ini-development to C:\php\php.ini.
68 | There are several lines you will need to change in a text editor (use search to find the current setting).
69 | Where applicable, you will need to remove the leading semicolon to uncomment these setting.
70 | 71 |
72 | 73 | Define the extension directory: 74 | 75 |

extension_dir = "C:/php/ext"
76 | 77 | Enable extensions. This will depend on the libraries you want to use, but the following extensions should be suitable for the majority of applications: 78 | 79 |
extension=curl
 80 | extension=gd2
 81 | extension=mbstring
 82 | extension=mysql
 83 | extension=pdo_mysql
 84 | extension=xmlrpc
85 | 86 | If you want to send emails using the PHP mail() function, enter the details of an SMTP server (your ISP’s server should be suitable): 87 | 88 |
[mail function]
 89 | ; For Win32 only.
 90 | SMTP = mail.myisp.com
 91 | smtp_port = 25
 92 | 
 93 | ; For Win32 only.
 94 | sendmail_from = my@emailaddress.com
95 | 96 |

97 |
Step 4: Add C:\php to the path environment
98 |

99 | To ensure Windows can find PHP, you need to change the path environment variable.
100 | Open Settings, type ‘environment variables’ into the search field and open the result.
101 | Select the “Advanced” tab, and click the “Environment Variables” button.
102 |
103 | Scroll down the System variables list and click on “Path” followed by the “Edit” button.
104 | Click “Edit text” and add ;C:\php to the end of the Variable value line (remember the semicolon).
105 |
106 | Now click OK until you’re out. You might need to reboot at this stage.
107 |

-------------------------------------------------------------------------------- /templates/getting-started/introduction/what-can-php-do.php: -------------------------------------------------------------------------------- 1 | layout('getting-started/layout', [ 2 | 'title' => 'Getting Start - Interoduction', 3 | 'section' => 'Introduction' 4 | ]) ?> 5 | 6 |

7 | What can PHP do ? 8 |

9 |

10 | Anything. PHP is mainly focused on server-side scripting, so you can do anything any other CGI program can do, such as collect form data, generate dynamic page content, or send and receive cookies. But PHP can do much more.

11 | There are three main areas where PHP scripts are used.
12 |

17 | PHP can be used on all major operating systems, including Linux, many Unix variants (including HP-UX, Solaris and OpenBSD), Microsoft Windows, macOS, RISC OS, and probably others. PHP also has support for most of the web servers today. This includes Apache, IIS, and many others. And this includes any web server that can utilize the FastCGI PHP binary, like lighttpd and nginx. PHP works as either a module, or as a CGI processor.
18 | So with PHP, you have the freedom of choosing an operating system and a web server. Furthermore, you also have the choice of using procedural programming or object oriented programming (OOP), or a mixture of them both.

19 | With PHP you are not limited to output HTML. PHP's abilities includes outputting images, PDF files and even Flash movies (using libswf and Ming) generated on the fly. You can also output easily any text, such as XHTML and any other XML file. PHP can autogenerate these files, and save them in the file system, instead of printing it out, forming a server-side cache for your dynamic content.

20 | One of the strongest and most significant features in PHP is its support for a wide range of databases. Writing a database-enabled web page is incredibly simple using one of the database specific extensions (e.g., for mysqli), or using an abstraction layer like PDO, or connect to any database supporting the Open Database Connection standard via the ODBC extension. Other databases may utilize cURL or sockets, like CouchDB.

21 | PHP also has support for talking to other services using protocols such as LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (on Windows) and countless others. You can also open raw network sockets and interact using any other protocol. PHP has support for the WDDX complex data exchange between virtually all Web programming languages. Talking about interconnection, PHP has support for instantiation of Java objects and using them transparently as PHP objects. 22 | PHP has useful text processing features, which includes the Perl compatible regular expressions (PCRE), and many extensions and tools to parse and access XML documents. PHP standardizes all of the XML extensions on the solid base of libxml2, and extends the feature set adding SimpleXML, XMLReader and XMLWriter support.

23 | And many other interesting extensions exist, which are categorized both alphabetically and by category. And there are additional PECL extensions that may or may not be documented within the PHP documentation itself, like XDebug.

24 | As you can see this page is not enough to list all the features and benefits PHP can offer. Read on in the sections about installing PHP, and see the function reference part for explanation of the extensions mentioned here. 25 |

-------------------------------------------------------------------------------- /templates/getting-started/introduction/what-is-php.php: -------------------------------------------------------------------------------- 1 | layout('getting-started/layout', [ 2 | 'title' => 'Getting Start - Interoduction', 3 | 'section' => 'Introduction' 4 | ]) ?> 5 | 6 |

7 | What's PHP ? 8 |

9 |

10 | PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML.
11 | Nice, but what does that mean? An example:
12 |

13 | 
14 | e("
15 | 
16 |     
17 |         Hello, World
18 |     
19 | 
20 |     
21 |         
24 |     
25 | "); ?>
26 | 
27 | 
28 | Instead of lots of commands to output HTML (as seen in C or Perl), PHP pages contain HTML with embedded code that does "something" (in this case, output "Hi, I'm a PHP script!"). The PHP code is enclosed in special start and end processing instructions <?php and ?> that allow you to jump into and out of "PHP mode."

29 | What distinguishes PHP from something like client-side JavaScript is that the code is executed on the server, generating HTML which is then sent to the client. The client would receive the results of running that script, but would not know what the underlying code was. You can even configure your web server to process all your HTML files with PHP, and then there's really no way that users can tell what you have up your sleeve.

30 | The best things in using PHP are that it is extremely simple for a newcomer, but offers many advanced features for a professional programmer. Don't be afraid reading the long list of PHP's features. You can jump in, in a short time, and start writing simple scripts in a few hours.

31 | Although PHP's development is focused on server-side scripting, you can do much more with it. Read on, and see more in the What can PHP do? section, or go right to the introductory tutorial if you are only interested in web programming.

32 |

33 | -------------------------------------------------------------------------------- /templates/getting-started/layout.php: -------------------------------------------------------------------------------- 1 | layout('layout/basic', ['title' => $title]) ?> 2 | 3 |
4 |

Getting Started : e($section) ?>

5 |
6 |
7 |
8 | 9 |
10 | fetch('getting-started/sidebar') ?> 11 |
12 |
13 | section('content') ?> 14 |
15 | -------------------------------------------------------------------------------- /templates/getting-started/sidebar.php: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 | 9 |
10 |
11 |
12 | 13 | 14 |
15 | 22 |
23 |
24 |
25 | 26 | 27 |
28 | 36 |
37 |
-------------------------------------------------------------------------------- /templates/getting-started/tutorial/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azjezz/web-php-mock-ups/7a0bacc20dbf33db7b20126cf37ea23859016c07/templates/getting-started/tutorial/.gitkeep -------------------------------------------------------------------------------- /templates/landing.php: -------------------------------------------------------------------------------- 1 | layout('layout/basic', ['title' => 'PHP']) ?> 2 | 3 |
4 |

5 | PHP Hypertext Preprocessor 6 |

7 |

8 | PHP is a popular general-purpose scripting language that is especially suited to 9 | web development.

10 | Fast, flexible and pragmatic, PHP powers everything from your blog to the most 11 | popular websites in the world. 12 |

13 |
14 |
15 |
<?php declare(strict_types=1);
16 | 
17 | function greet(string $name): void
18 | {
19 |     echo 'Hello, ' . $name . ' !';
20 | }
21 | 
22 | greet('World'); // Hello, World !
23 |
24 |
25 |
26 |
27 | 28 |
29 |

Latest Releases

30 |
31 | fetch('component/release-card', $release); 34 | } 35 | ?> 36 |
37 |
38 |
39 |
40 |

Latest Articles

41 |
42 | fetch('component/article-card', $article); 45 | } 46 | ?> 47 |
48 |
49 |
50 |
51 |

Upcoming Events

52 |
53 | fetch('component/event-card', $event); 56 | } 57 | ?> 58 |
59 |
60 |
-------------------------------------------------------------------------------- /templates/layout/basic.php: -------------------------------------------------------------------------------- 1 | fetch('layout/header', ['title' => $title]) ?> 2 | 3 |
4 |
5 |
6 |
7 | section('content') ?> 8 |
9 |
10 |
11 |
12 | 13 | fetch('layout/footer') ?> -------------------------------------------------------------------------------- /templates/layout/footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /templates/layout/header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <?= $this->e($title) ?> - PHP Hypertext Preprocessor 5 | 6 | 7 | 8 | 9 | 10 | 18 | 19 | 20 | --------------------------------------------------------------------------------