Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removed usage of deprecated getKeys in favor of keys() from phpredis #52

Merged
merged 2 commits into from
Oct 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ Here are steps I took to migrate my project through all versions to PHP 8.1, may

## Before using this fork ⚠️

- Tests of CakePHP framework aren't refactored yet to support PHP 8. Main issue is old version of PHPUnit that is tightly coupled to framework's tests. Issue for fixing this situation is here: https://github.com/kamilwylegala/cakephp2-php8/issues/7
- Due to lack of tests ☝️ - **you need to rely** on tests in your application after integrating with this fork.
- ~~Tests of CakePHP framework aren't refactored yet to support PHP 8. Main issue is old version of PHPUnit that is tightly coupled to framework's tests. Issue for fixing this situation is here: https://github.com/kamilwylegala/cakephp2-php8/issues/7~~ Framework tests are migrated to PHPUnit 9.*. Github actions are running tests on PHP 8.0, 8.1.
- ~~Due to lack of tests ☝️~~ - **you also need to rely** on tests in your application after integrating with this fork.
- If after integration you spot any issues related to framework please let me know by creating an issue or pull request with fix.

## Installation
Expand All @@ -55,6 +55,12 @@ It means that composer will look at `master` branch of repository configured und

## Changelog


### 2023-10-19

- Removed usage of deprecated `redis->getKeys()` in favor of `redis->keys()`.
- Added docker-compose setup to run tests locally.

### 2023-09-18

- Fix for `ShellDispatcher` where `null` was passed to `strpos` function.
Expand Down
54 changes: 54 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
services:
web:
build: ./docker/web
environment:
PHP_IDE_CONFIG: "serverName=localhost"
volumes:
- ./:/var/www/html:cached
working_dir: /var/www/html
ports:
- "8000:80"
depends_on:
- mysql
- pgsql
- memcached
- redis
mysql:
image: mysql:5.6
platform: linux/amd64
command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: cakephp_test
MYSQL_USER: cakephp_test
MYSQL_PASSWORD: secret
volumes:
- ./docker/mysql:/docker-entrypoint-initdb.d:cached
- mysql-data:/var/lib/mysql
ports:
- "3306:3306"
pgsql:
image: postgres:9.4
platform: linux/amd64
environment:
POSTGRES_DB: cakephp_test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- ./docker/pgsql:/docker-entrypoint-initdb.d:cached
- pgsql-data:/var/lib/postgresql/data
ports:
- "5432:5432"
memcached:
image: memcached:latest
hostname: memcached
ports:
- "11211:11211"
redis:
image: "redis:latest"
hostname: redis
ports:
- "6379:6379"
volumes:
mysql-data:
pgsql-data:
7 changes: 7 additions & 0 deletions docker/mysql/1_initialize_database.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CREATE DATABASE IF NOT EXISTS cakephp_test ;
GRANT ALL ON cakephp_test.* TO 'cakephp_test'@'%' ;
CREATE DATABASE IF NOT EXISTS cakephp_test2 ;
GRANT ALL ON cakephp_test2.* TO 'cakephp_test'@'%' ;
CREATE DATABASE IF NOT EXISTS cakephp_test3 ;
GRANT ALL ON cakephp_test3.* TO 'cakephp_test'@'%' ;
FLUSH PRIVILEGES ;
4 changes: 4 additions & 0 deletions docker/pgsql/1_initialize_database.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
\c cakephp_test

CREATE SCHEMA test2;
CREATE SCHEMA test3;
25 changes: 25 additions & 0 deletions docker/web/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM php:8.2-apache

RUN apt-get update && apt-get install -y --no-install-recommends \
&& apt-get install -y libpq-dev libzip-dev unzip openssl libmcrypt-dev libmemcached-dev locales \
&& rm -rf /var/lib/apt/lists/*

RUN docker-php-ext-install pdo_mysql pdo_pgsql zip \
&& pecl install apcu redis memcached mcrypt xdebug \
&& docker-php-ext-enable redis memcached mcrypt \
&& docker-php-ext-enable xdebug \
&& echo "extension=apcu.so" >> /usr/local/etc/php/php.ini \
&& echo "apc.enable_cli = 1" >> /usr/local/etc/php/php.ini

COPY --from=composer /usr/bin/composer /usr/local/bin/composer

RUN sed -i '/de_DE /s/^# //g' /etc/locale.gen \
&& sed -i '/es_ES /s/^# //g' /etc/locale.gen \
&& locale-gen

ENV APACHE_DOCUMENT_ROOT /var/www/html/app/webroot

RUN a2enmod rewrite

RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
2 changes: 1 addition & 1 deletion lib/Cake/Cache/Engine/RedisEngine.php
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ public function clear($check) {
if ($check) {
return true;
}
$keys = $this->_Redis->getKeys($this->settings['prefix'] . '*');
$keys = $this->_Redis->keys($this->settings['prefix'] . '*');
$this->_Redis->del($keys);

return true;
Expand Down