Compare commits
4 commits
4115526ce8
...
ab18af5b5b
Author | SHA1 | Date | |
---|---|---|---|
ab18af5b5b | |||
502670c600 | |||
bed48bf026 | |||
70d91a346b |
9 changed files with 32 additions and 14 deletions
11
CHANGELOG.md
11
CHANGELOG.md
|
@ -2,6 +2,15 @@
|
|||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [1.1.2] - 2025-04-26
|
||||
### Fixed
|
||||
- Fixed a critical bug where environments would not build correctly if using a SQLite database.
|
||||
|
||||
## [1.1.1] - 2025-04-26
|
||||
### Fixed
|
||||
- Fixed a critical bug where environments could not be destroyed if using a MySQL database.
|
||||
- Fixed a critical bug where PDO extensions were not installed in the container, causing MySQL driver errors.
|
||||
|
||||
## [1.1.0] - 2025-04-24
|
||||
### Added
|
||||
- New database option: MySQL.
|
||||
|
@ -23,7 +32,7 @@ All notable changes to this project will be documented in this file.
|
|||
- Added information on `spin:down` command to README.
|
||||
|
||||
### Changed
|
||||
- Minor documentation tweak to include link to Wiki on Packagist.
|
||||
- Minor documentation tweak to include a link to the Wiki on Packagist.
|
||||
|
||||
## [1.0.1] - 2025-04-24
|
||||
### Changed
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
# Loom Spinner CLI
|
||||
|
||||
<p>
|
||||
<img src="https://img.shields.io/badge/Version-1.1.0-blue" alt="Version 1.1.0">
|
||||
<img src="https://img.shields.io/badge/Version-1.1.2-blue" alt="Version 1.1.2">
|
||||
</p>
|
||||
|
||||
A streamlined environment management tool for PHP developers.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "loomlabs/loom-spinner-cli",
|
||||
"description": "A simple command-line Docker environment spinner for PHP.",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.2",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Loom\\Spinner\\": "src/"
|
||||
|
|
|
@ -9,4 +9,8 @@ services:
|
|||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}
|
||||
volumes:
|
||||
- ./data/${PROJECT_NAME}/mysql:/var/lib/mysql:cached
|
||||
- mysql_data:/var/lib/mysql:cached
|
||||
container_name: ${PROJECT_NAME}-mysql
|
||||
|
||||
volumes:
|
||||
mysql_data:
|
|
@ -2,9 +2,9 @@ services:
|
|||
nginx:
|
||||
build:
|
||||
context: ./nginx
|
||||
container_name: ${PROJECT_NAME}-nginx
|
||||
ports:
|
||||
- ${SERVER_PORT}:80
|
||||
volumes:
|
||||
- ${PROJECT_DIRECTORY}:/var/www/html:cached
|
||||
- ./nginx/conf.d:/etc/nginx/conf.d
|
||||
container_name: ${PROJECT_NAME}-nginx
|
||||
- ./nginx/conf.d:/etc/nginx/conf.d
|
1
config/php-fpm/MySQL.Dockerfile
Normal file
1
config/php-fpm/MySQL.Dockerfile
Normal file
|
@ -0,0 +1 @@
|
|||
RUN docker-php-ext-install mysqli pdo pdo_mysql > /dev/null 2>&1
|
|
@ -5,7 +5,6 @@ declare(strict_types=1);
|
|||
namespace Loom\Spinner\Classes\File;
|
||||
|
||||
use Loom\Spinner\Classes\Config\Config;
|
||||
use Loom\Utility\FilePath\FilePath;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
|
||||
class DockerComposeFileBuilder extends AbstractFileBuilder
|
||||
|
@ -25,6 +24,9 @@ class DockerComposeFileBuilder extends AbstractFileBuilder
|
|||
{
|
||||
$this->content = $this->config->getConfigFileContents('php.yaml');
|
||||
|
||||
if ($this->config->isServerEnabled($input)) {
|
||||
$this->addNginxConfig();
|
||||
}
|
||||
if ($this->config->isDatabaseEnabled($input)) {
|
||||
$databaseDriver = strtolower($this->config->getDatabaseDriver($input));
|
||||
|
||||
|
@ -37,10 +39,6 @@ class DockerComposeFileBuilder extends AbstractFileBuilder
|
|||
}
|
||||
}
|
||||
|
||||
if ($this->config->isServerEnabled($input)) {
|
||||
$this->addNginxConfig();
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
|
|
@ -36,13 +36,18 @@ class PHPDockerFileBuilder extends AbstractFileBuilder
|
|||
$this->addNewLine();
|
||||
$this->content .= $this->config->getConfigFileContents('php-fpm/Sqlite.Dockerfile');
|
||||
}
|
||||
|
||||
if ($this->config->getDatabaseDriver($input) ==='mysql') {
|
||||
$this->addNewLine();
|
||||
$this->content .= $this->config->getConfigFileContents('php-fpm/MySQL.Dockerfile');
|
||||
}
|
||||
}
|
||||
|
||||
$this->content = str_replace('${NODE_VERSION}', (string) $this->config->getNodeVersion($input), $this->content);
|
||||
|
||||
if ($this->config->isXdebugEnabled($input)) {
|
||||
$this->addNewLine();
|
||||
$this->content .= $this->config->getConfigFileContents('php-fpm/Xdebug.Dockerfile');
|
||||
$this->content .= $this->config->getConfigFileContents('php-fpm/XDebug.Dockerfile');
|
||||
file_put_contents(
|
||||
$this->config->getDataDirectory() . '/php-fpm/xdebug.ini',
|
||||
$this->config->getConfigFileContents('php-fpm/xdebug.ini')
|
||||
|
|
|
@ -29,7 +29,8 @@ class DestroyCommand extends AbstractSpinnerCommand
|
|||
return Command::FAILURE;
|
||||
}
|
||||
|
||||
$this->config = new Config($input->getArgument('name'));
|
||||
$projectName = $input->getArgument('name');
|
||||
$this->config = new Config($projectName);
|
||||
|
||||
if (!file_exists($this->config->getDataDirectory())) {
|
||||
$this->style->error('No project found with the provided name.');
|
||||
|
@ -38,7 +39,7 @@ class DestroyCommand extends AbstractSpinnerCommand
|
|||
}
|
||||
|
||||
try {
|
||||
passthru($this->buildDockerComposeCommand('down', false, false));
|
||||
passthru($this->buildDockerComposeCommand('down -v', false, false));
|
||||
recursive_rmdir($this->config->getDataDirectory());
|
||||
} catch (\Exception $exception) {
|
||||
$this->style->error('An error occurred while destroying the project: ' . $exception->getMessage());
|
||||
|
|
Loading…
Add table
Reference in a new issue