Download the PHP package o-log/php-crud without Composer

On this page you can find all versions of the php package o-log/php-crud. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package php-crud

Библиотека умеет делать две вещи: выводить список объектов и выводить форму редактирования одного объекта. При этом она генерирует не готовую страницу, а только html-код таблицы или формы. Выходной html-код совместим с twitter bootstrap.

Все остальное - проверка прав доступа, вывод таблицы или формы в нужное место страницы - нужно сделать отдельно. Для этого можно использовать готовые модули:

Объекты загружаются из БД через методы \OLOG\Model\InterfaceFactory, соответственно класс объекта должен реализовать этот интерфейс.

Объекты сохраняются в БД через методы \OLOG\Model\InterfaceSave, соответственно для редактирования класс объекта должен реализовать этот интерфейс.

Установка демо проекта

В папке, где мы хотим развернуть демо проект, выполняем в консоли следующие команды:

git clone https://github.com/o-log/php-crud.git
cd php-crud
composer update

После этого нужно создать пустую БД для проекта и указаты параметры доступа к ней в файле CRUDDemo/Config.php

Теперь создаем таблицы в БД, для этого выполняем скрипт миграции структуры БД:

php cli.php

Выбираем пункт 1, затем отвечаем на вопросы скрипта.

После создания таблиц запускаем локальный сервер и проверяем работу:

./run.sh

Открываем в браузере адрес localhost:8000

Подключение библиотеки к проекту

Включаем в composer.json проект такие строки:

"require" : {
    "o-log/php-crud" : "dev-master"
}

Вывод списка объектов

Вот пример кода, который генерирует html таблицы объектов:

$html .= CRUDTable::html(
    DemoNode::class,
    \OLOG\CRUD\CRUDForm::html(
        new DemoNode(),
        [
            new CRUDFormRow(
                'Title',
                new CRUDFormWidgetInput('title')
            )
        ]
    ),
    [
        new CRUDTableColumn(
            'Edit',
            new CRUDTableWidgetText('{this->title}')
        ),
        new CRUDTableColumn(
            'Reverse title',
            new CRUDTableWidgetText('{this->getReverseTitle()}')
        ),
        new CRUDTableColumn(
            'Edit',
            new CRUDTableWidgetTextWithLink(
                '{this->title}',
                DemoNodeEditAction::getUrl('{this->id}')
            )
        ),
        new CRUDTableColumn(
            'Weight',
            new CRUDTableWidgetWeight(
                [
                    'parent_id' => '{this->parent_id}'
                ]
            )
        ),
        new CRUDTableColumn(
            'Delete',
            new CRUDTableWidgetDelete()
        ),
    ],
    [],
    'title'
);

Вывод данных в таблице

При вызове виджета таблицы мы передаем ему строку: что выводить. В этой строке можно обращаться к поля и методам объекта, который выводится в текущей строке таблицы, а также к другим объектам.

Объект, для которого выводится текущая строка таблицы, доступен через ключевое слово this.

Примеры вывода полей и вызова методов текущего объекта:

new CRUDTableWidgetText('{this->title}') new CRUDTableWidgetText('{this->getReverseTitle()}') new CRUDTableWidgetHtml('{this->id}
{this->title}')

К другим объектам, на которые ссылается текущий, можно обратиться следующим образом:

new CRUDTableWidgetText('{DemoTerm.{this->term_id}->title}')

Здесь мы выводим название рубрики, связанной с новостью: создаем объект класса DemoTerm с идентификатором, который берем из поля term_id текущего объекта, и выводит его название.

На практике для указания имени класса вместо скаляра стоит использовать автоматические константы, поэтому окончательная запись будет выглядеть так:

new CRUDTableWidgetText('{' . DemoTerm::class . '.{this->term_id}->title}')

В виджете весов иногда необходимо учитывать дополнительные параметры по котороым вычисляются веса объектов в таблице. Для этого мы передаем массив контекстов

Например

new CRUDTableWidgetWeight([ 'parent_id' => '{this->parent_id}' ])

В этом случае при обработки изменения весов веса будут считаться для записей с parent_id таким же как и у текущего объекта

Вывод редактора объекта

Вот пример кода, который генерирует html редактора объекта:

    $node_obj = DemoNode::factory($node_id);

    $html .= \OLOG\CRUD\CRUDForm::html(
        $node_obj,
        [
            new CRUDFormRow(
                'Id',
                new CRUDFormWidgetInput('id')
            ),
            new CRUDFormRow(
                'Title',
                new CRUDFormWidgetTextarea('title')
            ),
            new CRUDFormRow(
                'image_path_in_images nullable',
                new CRUDFormWidgetInput('image_path_in_images', true)
            ),
            new CRUDFormRow(
                'Date',
                new CRUDFormWidgetTimestamp('created_at_ts')
            ),
            new CRUDFormRow(
                'is_published',
                new CRUDFormWidgetRadios('is_published', [0 => 'no', 1 => 'yes'])
            ),
            new CRUDFormRow(
                'published_at_datetime_str',
                new CRUDFormWidgetDateTime('published_at_datetime_str')
            ),
            new CRUDFormRow(
                'expiration_date nullable',
                new CRUDFormWidgetDate('expiration_date')
            ),
            new CRUDFormRow(
                'State code',
                new CRUDFormWidgetOptions('state_code',
                    [
                        1 => 'announce',
                        2 => 'live',
                        3 => 'archive'
                    ]
                )
            ),
            new CRUDFormRow(
                'State code',
                new CRUDFormWidgetHtml('<ul><li>html widget - line 1</li><li>html widget - line 2</li></ul>')
            ),
            new CRUDFormVerticalRow(
                'Body',
                new CRUDFormWidgetAceTextarea('body')
            )
        ]
    );

All versions of php-crud with dependencies

PHP Build Version
Package Version
Requires php Version >=7.2
ext-mbstring Version *
o-log/php-bt Version 9.*
o-log/php-model Version 10.*
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package o-log/php-crud contains the following files

Loading the files please wait ....