Skip to content

Commit 18a1cd2

Browse files
committed
PHP 8.4
1 parent 90201e1 commit 18a1cd2

File tree

4 files changed

+119
-1
lines changed

4 files changed

+119
-1
lines changed

public/js/main-form.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ function doMainFormMagic () {
102102
phpVersionSelector.on('change', function () {
103103
extensionMultiSelects.parents('.form-group').hide()
104104

105-
let chosenVersion = '83'
105+
let chosenVersion = '84'
106106
switch ($(this).val()) {
107107
case '8.1':
108108
chosenVersion = '81'
@@ -111,6 +111,10 @@ function doMainFormMagic () {
111111
case '8.2':
112112
chosenVersion = '82'
113113
break
114+
115+
case '8.3':
116+
chosenVersion = '83'
117+
break
114118
}
115119

116120
extensionMultiSelects.filter('[id$=' + chosenVersion + ']').parents('.form-group').show()

src/Controller/GeneratorController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ private function hydrateProject(array $formData): Project
7878
PhpOptions::PHP_VERSION_81 => $phpData['phpExtensions81'],
7979
PhpOptions::PHP_VERSION_82 => $phpData['phpExtensions82'],
8080
PhpOptions::PHP_VERSION_83 => $phpData['phpExtensions83'],
81+
PhpOptions::PHP_VERSION_84 => $phpData['phpExtensions84'],
8182
default => throw new InvalidArgumentException(sprintf('Unsupported php version %s', $phpData['version'])),
8283
};
8384

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
<?php
2+
declare(strict_types=1);
3+
/**
4+
* Copyright 2023 Luis Alberto Pabón Flores
5+
*
6+
* Licensed under the Apache License, Version 2.0 (the "License");
7+
* you may not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*
18+
*/
19+
20+
namespace App\PHPDocker\PhpExtension;
21+
22+
class Php84AvailableExtensions extends BaseAvailableExtensions
23+
{
24+
/**
25+
* @inheritDoc
26+
* @return array<string, array<string, string[]>>
27+
*/
28+
protected function getMandatoryExtensionsMap(): array
29+
{
30+
return [
31+
'cURL' => ['packages' => ['php8.4-curl']],
32+
'MBSTRING' => ['packages' => ['php8.4-mbstring']],
33+
'OPCache' => ['packages' => ['php8.4-opcache']],
34+
'Readline' => ['packages' => ['php8.4-readline']],
35+
'XML' => ['packages' => ['php8.4-xml']],
36+
'Zip' => ['packages' => ['php8.4-zip']],
37+
];
38+
}
39+
40+
/**
41+
* @inheritDoc
42+
* @return array<string, array<string, string[]>>
43+
*/
44+
protected function getOptionalExtensionsMap(): array
45+
{
46+
return [
47+
'AMQP' => ['packages' => ['php8.4-amqp']],
48+
'AST' => ['packages' => ['php8.4-ast']],
49+
'Bcmath' => ['packages' => ['php8.4-bcmath']],
50+
'bzip2' => ['packages' => ['php8.4-bz2']],
51+
'CGI' => ['packages' => ['php8.4-cgi']],
52+
'DBA' => ['packages' => ['php8.4-dba']],
53+
'Decimal' => ['packages' => ['php8.4-decimal']],
54+
'DS (Data Structures)' => ['packages' => ['php8.4-ds']],
55+
'Enchant' => ['packages' => ['php8.4-enchant']],
56+
'GD' => ['packages' => ['php8.4-gd']],
57+
'Gearman' => ['packages' => ['php8.4-gearman']],
58+
'Gmagick (GraphicsMagick)' => ['packages' => ['php8.4-gmagick']],
59+
'GMP' => ['packages' => ['php8.4-gmp']],
60+
'GNUPG' => ['packages' => ['php8.4-gnupg']],
61+
'GRPC' => ['packages' => ['php8.4-grpc']],
62+
'HTTP' => ['packages' => ['php8.4-http']],
63+
'igbinary' => ['packages' => ['php8.4-igbinary']],
64+
'ImageMagick' => ['packages' => ['php8.4-imagick']],
65+
'IMAP' => ['packages' => ['php8.4-imap']],
66+
'Inotify' => ['packages' => ['php8.4-inotify']],
67+
'Interbase' => ['packages' => ['php8.4-interbase']],
68+
'Intl (Internationalisation)' => ['packages' => ['php8.4-intl']],
69+
'LDAP' => ['packages' => ['php8.4-ldap']],
70+
'LZ4' => ['packages' => ['php8.4-lz4']],
71+
'Mailparse' => ['packages' => ['php8.4-mailparse']],
72+
'MaxMind DB' => ['packages' => ['php8.4-maxminddb']],
73+
'mcrypt' => ['packages' => ['php8.4-mcrypt']],
74+
'Memcache' => ['packages' => ['php8.4-memcache']],
75+
'Memcached' => ['packages' => ['php8.4-memcached']],
76+
'MongoDB' => ['packages' => ['php8.4-mongodb']],
77+
'MessagePack' => ['packages' => ['php8.4-msgpack']],
78+
'MySQL' => ['packages' => ['php8.4-mysql']],
79+
'OAuth' => ['packages' => ['php8.4-oauth']],
80+
'ODBC' => ['packages' => ['php8.4-odbc']],
81+
'Pcov' => ['packages' => ['php8.4-pcov']],
82+
'PostgreSQL' => ['packages' => ['php8.4-pgsql']],
83+
'PHPDBG' => ['packages' => ['php8.4-phpdbg']],
84+
'Protobuf' => ['packages' => ['php8.4-protobuf']],
85+
'pspell' => ['packages' => ['php8.4-pspell']],
86+
'PSR' => ['packages' => ['php8.4-psr']],
87+
'raphf' => ['packages' => ['php8.4-raphf']],
88+
'Redis' => ['packages' => ['php8.4-redis']],
89+
'rrd' => ['packages' => ['php8.4-rrd']],
90+
'Samba Client' => ['packages' => ['php8.4-smbclient']],
91+
'SNMP' => ['packages' => ['php8.4-snmp']],
92+
'SOAP' => ['packages' => ['php8.4-soap']],
93+
'Solr' => ['packages' => ['php8.4-solr']],
94+
'SQLite3' => ['packages' => ['php8.4-sqlite3']],
95+
'ssh2' => ['packages' => ['php8.4-ssh2']],
96+
'Swoole' => ['packages' => ['php8.4-swoole']],
97+
'Sybase' => ['packages' => ['php8.4-sybase']],
98+
'Tidy' => ['packages' => ['php8.4-tidy']],
99+
'UUID' => ['packages' => ['php8.4-uuid']],
100+
'vips' => ['packages' => ['php8.4-vips']],
101+
'Xdebug' => ['packages' => ['php8.4-xdebug']],
102+
'Xhprof' => ['packages' => ['php8.4-xhprof']],
103+
'XMLRPC' => ['packages' => ['php8.4-xmlrpc']],
104+
'XSL' => ['packages' => ['php8.4-xsl']],
105+
'Yac' => ['packages' => ['php8.4-yac']],
106+
'YAML' => ['packages' => ['php8.4-yaml']],
107+
'ZMQ (ZeroMQ)' => ['packages' => ['php8.4-zmq']],
108+
'zstd (Zstandard)' => ['packages' => ['php8.4-zstd']],
109+
];
110+
}
111+
}

src/PHPDocker/Project/ServiceOptions/Php.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class Php extends Base
3131
public const string PHP_VERSION_81 = '8.1';
3232
public const string PHP_VERSION_82 = '8.2';
3333
public const string PHP_VERSION_83 = '8.3';
34+
public const string PHP_VERSION_84 = '8.4';
3435

3536
private string $version;
3637

@@ -41,6 +42,7 @@ class Php extends Base
4142
* Supported PHP versions
4243
*/
4344
private const array SUPPORTED_VERSIONS = [
45+
self::PHP_VERSION_84,
4446
self::PHP_VERSION_83,
4547
self::PHP_VERSION_82,
4648
self::PHP_VERSION_81,

0 commit comments

Comments
 (0)