https://github.com/redgoose-dev/php-paginate
paginate navigation class
https://github.com/redgoose-dev/php-paginate
navigation paginate php
Last synced: 19 days ago
JSON representation
paginate navigation class
- Host: GitHub
- URL: https://github.com/redgoose-dev/php-paginate
- Owner: redgoose-dev
- License: mit
- Created: 2019-12-08T09:35:36.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-11-13T12:57:30.000Z (over 4 years ago)
- Last Synced: 2025-01-24T23:18:37.193Z (over 1 year ago)
- Topics: navigation, paginate, php
- Language: PHP
- Size: 13.7 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# paginate
`[1][2][3]...` 형식으로 된 페이지 네비게이션을 만들어주는 도구입니다.
한번 실행으로 쉽게 페이지네이션 엘리먼트를 만들거나 객체를 만들어서 사용할 수 있습니다.
## Install
다음과 같이 `composer`를 통하여 패키지를 설치합니다.
```shell script
composer require redgoose/paginate
```
`composer`를 사용하지 않는다면 `github`에서 소스를 다운로드 후에 `/src/Paginate.php`로 사용합니다.
## Usage
### with composer
```php
require 'vendor/autoload.php';
use redgoose\Paginate;
$paginate = new Paginate();
```
### without composer
소스를 다운로드하고 직접 연결할때 사용하는 방법입니다.
```php
require 'src/Paginate.php';
use redgoose\Paginate;
$paginate = new Paginate();
```
### create instance
`new` 키워드를 통하여 인스턴스 객체를 만들어서 사용할 수 있습니다.
```php
$paginate = new Paginate($pref);
```
## Options
```php
$paginate = new Paginate((object)[
'total' => 300,
'page' => 1,
'size' => 10,
'scale' => 10,
'params' => [],
]);
```
인스턴스 객체를 만들때 사용하는 옵션들입니다.
객체를 만드는 예제소스와 같이 `object` 타입의 객체값은 다음과 같습니다.
| Name | Type | Default | Description |
| --------- | ----- | ------- | ----------- |
| total | int | 0 | 데이터의 총 갯수 |
| page | int | 1 | 현재 페이지의 번호 |
| size | int | 10 | 한페이지에서 출력되는 데이터 갯수 |
| scale | int | 10 | 총 페이지 갯수 |
| params | array | null | 파라메터로 만들어지는 주소 뒤에붙는 `&foo=bar`형식으로 된 url |
## Methods
`create instance` 섹션에서 만든 `$paginate` 객체를 통하여 메서드를 사용할 수 있습니다.
### update()
인스턴스 객체를 만들때의 설정값을 변경할 수 있습니다.
```php
$paginate->update($pref);
```
`$pref`값은 `Options`섹션과 같은 값을 사용합니다.
### createElements()
네비게이션 엘리먼트를 만들어줍니다.
```php
$element = $paginate->createElements($classNames, $path);
echo $element;
```
| Name | Type | Default | Description |
| ----------- | ------ | ------- | ----------- |
| $classNames | array | [] | 엘리먼트 클래스 이름. 배열의 첫번째 값은 대표 이름으로 사용됩니다. |
| $path | string | null | 링크 prefix |
### createObject()
네비게이션 객체를 만들어줍니다.
```php
$object = $paginate->createObject($path);
print_r($object);
```
| Name | Type | Default | Description |
| ----- | ------ | ------- | ----------- |
| $path | string | null | 링크 prefix |
객체를 만들면 다음과 같은 모습으로 객체를 리턴합니다.
```
stdClass Object (
[prev] =>
[body] => Array (
[0] => stdClass Object (
[name] => 1
[no] => 1
[url] => ./
)
[1] => stdClass Object (
[name] => 2
[no] => 2
[url] => ./?page=2
)
)
[next] => stdClass Object (
[name] => next
[no] => 11
[url] => ./?page=11
)
)
```