Skip to content

Commit 48b031d

Browse files
committed
wip, 5.0
1 parent f91fd29 commit 48b031d

File tree

84 files changed

+1905
-3786
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+1905
-3786
lines changed

.github/workflows/testing.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
name: Testing
2+
3+
on:
4+
push:
5+
6+
jobs:
7+
static_analyze:
8+
name: Static Analyze
9+
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/checkout@v4
14+
15+
- name: Setup PHP with PECL extension
16+
uses: shivammathur/setup-php@v2
17+
with:
18+
php-version: 8.3
19+
coverage: xdebug
20+
21+
- name: Get composer cache directory
22+
run: echo "COMPOSER_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV
23+
24+
- name: Cache dependencies
25+
uses: actions/cache@v3
26+
with:
27+
path: ${{ env.COMPOSER_DIR }}
28+
key: ${{ runner.os }}-composer-static-analyze-${{ hashFiles('**/composer.json') }}
29+
restore-keys: ${{ runner.os }}-composer-static-analyze-
30+
31+
- name: Install dependencies
32+
run: composer update --no-progress --no-interaction
33+
34+
- name: Check runtime dependencies
35+
run: composer check-platform-reqs
36+
37+
- name: Run composer validate
38+
run: composer validate --strict
39+
40+
- name: Run composer normalize
41+
run: composer normalize --dry-run
42+
43+
- name: Run static analysis
44+
run: vendor/bin/phpstan --memory-limit=-1 --verbose
45+
46+
- name: Run coding style checker
47+
run: vendor/bin/pint -v --test
48+
49+
- name: Run type coverage check
50+
run: vendor/bin/pest --type-coverage --min=95
51+
52+
testing:
53+
name: PHP ${{ matrix.php }} (Testing)
54+
55+
runs-on: ubuntu-latest
56+
57+
strategy:
58+
fail-fast: false
59+
60+
matrix:
61+
php: [ '8.3', '8.2' ]
62+
63+
services:
64+
typesense:
65+
image: typesense/typesense:0.25.1
66+
ports:
67+
- 8108:8108/tcp
68+
volumes:
69+
- typesense_data:/data
70+
env:
71+
TYPESENSE_DATA_DIR: /data
72+
TYPESENSE_API_KEY: testing
73+
TYPESENSE_ENABLE_CORS: true
74+
75+
steps:
76+
- uses: actions/checkout@v4
77+
78+
- name: Setup PHP with PECL extension
79+
uses: shivammathur/setup-php@v2
80+
with:
81+
php-version: ${{ matrix.php }}
82+
coverage: xdebug
83+
84+
- name: Get composer cache directory
85+
run: echo "COMPOSER_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV
86+
87+
- name: Cache dependencies
88+
uses: actions/cache@v3
89+
with:
90+
path: ${{ env.COMPOSER_DIR }}
91+
key: ${{ runner.os }}-composer-php-${{ matrix.php }}-${{ hashFiles('**/composer.json') }}
92+
restore-keys: ${{ runner.os }}-composer-php-${{ matrix.php }}-
93+
94+
- name: Install dependencies
95+
run: composer update --no-progress --no-interaction
96+
97+
- name: Run tests
98+
run: vendor/bin/pest --coverage --min=95

.gitignore

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
.idea
2-
.tmp
3-
/composer.lock
4-
vendor
1+
/.fleet
2+
/.idea
3+
/.vscode
4+
/coverage
5+
/vendor
6+
.DS_Store
7+
.phpunit.result.cache
8+
clover.xml
9+
composer.phar
10+
composer.lock
11+
Thumbs.db

composer.json

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
{
22
"name": "typesense/typesense-php",
33
"description": "PHP client for Typesense Search Server: https://github.com/typesense/typesense",
4-
"type": "library",
5-
"homepage": "https://github.com/typesense/typesense-php",
64
"license": "Apache-2.0",
5+
"type": "library",
76
"authors": [
87
{
98
"name": "Typesense",
@@ -18,46 +17,60 @@
1817
"role": "Developer"
1918
}
2019
],
20+
"homepage": "https://github.com/typesense/typesense-php",
2121
"support": {
22-
"docs": "https://typesense.org/api",
22+
"issues": "https://github.com/typesense/typesense-php/issues",
2323
"source": "https://github.com/typesense/typesense-php",
24-
"issues": "https://github.com/typesense/typesense-php/issues"
24+
"docs": "https://typesense.org/docs/api"
25+
},
26+
"require": {
27+
"php": "^8.2",
28+
"php-http/discovery": "^1.19",
29+
"psr/http-client": "^1.0",
30+
"psr/http-client-implementation": "^1.0",
31+
"psr/http-factory": "^1.0",
32+
"psr/http-factory-implementation": "^1.0"
33+
},
34+
"require-dev": {
35+
"ergebnis/composer-normalize": "^2.40",
36+
"guzzlehttp/guzzle": "^7.8",
37+
"laravel/pint": "^1.13",
38+
"pestphp/pest": "^2.28",
39+
"pestphp/pest-plugin-faker": "^2.0",
40+
"pestphp/pest-plugin-type-coverage": "^2.5",
41+
"phpstan/phpstan": "^1.10",
42+
"symfony/http-client": "^7.0"
2543
},
2644
"minimum-stability": "stable",
45+
"prefer-stable": true,
2746
"autoload": {
2847
"psr-4": {
2948
"Typesense\\": "src/"
3049
}
3150
},
32-
"require": {
33-
"php": ">=7.4",
34-
"ext-json": "*",
35-
"monolog/monolog": "^2.1 || ^3.0 || ^3.3",
36-
"nyholm/psr7": "^1.3",
37-
"php-http/client-common": "^1.0 || ^2.3",
38-
"php-http/discovery": "^1.0",
39-
"php-http/httplug": "^1.0 || ^2.2",
40-
"psr/http-client-implementation": "^1.0",
41-
"psr/http-message": "^1.0 || ^2.0",
42-
"psr/http-factory": "^1.0"
43-
},
44-
"require-dev": {
45-
"squizlabs/php_codesniffer": "3.*",
46-
"symfony/http-client": "^5.2"
51+
"autoload-dev": {
52+
"psr-4": {
53+
"Typesense\\Tests\\": "tests/"
54+
}
4755
},
4856
"config": {
57+
"allow-plugins": {
58+
"ergebnis/composer-normalize": true,
59+
"pestphp/pest-plugin": true,
60+
"php-http/discovery": false
61+
},
4962
"optimize-autoloader": true,
5063
"preferred-install": {
5164
"*": "dist"
5265
},
5366
"sort-packages": true
5467
},
5568
"scripts": {
69+
"lint": "phpcs -v",
70+
"lint:fix": "phpcbf",
5671
"typesenseServer": [
5772
"Composer\\Config::disableProcessTimeout",
5873
"docker-compose up"
59-
],
60-
"lint": "phpcs -v",
61-
"lint:fix": "phpcbf"
74+
]
6275
}
6376
}

docker-compose.yml

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1-
version: '3.5'
1+
version: "3.8"
22

33
services:
4-
typesense:
5-
image: typesense/typesense:0.21.0.rc20
6-
environment:
7-
TYPESENSE_DATA_DIR: /data
8-
TYPESENSE_API_KEY: xyz
9-
volumes:
10-
- /tmp/typesense-server-data:/data
11-
ports:
12-
- 8108:8108
13-
restart: "no"
4+
typesense:
5+
image: typesense/typesense:0.25.1
6+
container_name: typesense-testing
7+
restart: "on-failure"
8+
ports:
9+
- "8108:8108/tcp"
10+
environment:
11+
TYPESENSE_DATA_DIR: /var/tmp
12+
TYPESENSE_API_KEY: testing
13+
TYPESENSE_ENABLE_CORS: "true"
14+
TYPESENSE_PEERING_ADDRESS: "127.0.0.1"
15+
TYPESENSE_PEERING_PORT: "12345"
16+
TYPESENSE_PEERING_SUBNET: "127.0.0.1/24"

examples/README.md

Lines changed: 0 additions & 14 deletions
This file was deleted.

examples/alias_operations.php

Lines changed: 0 additions & 142 deletions
This file was deleted.

0 commit comments

Comments
 (0)