Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Yii2 Redis Laravel Package

yiisoft/yii2-redis

Yii2 Redis extension providing Redis-backed cache, mutex, and session handlers plus an ActiveRecord layer for storing and querying structured data in Redis. Requires Redis 2.6.12+ and PHP 7.4+ (best on PHP 8).

View on GitHub
Deep Wiki
Context7

ActiveRecord orqali foydalanish

Avvalo Yii2'da ActiveRecord'dan qanday foydalanish haqida umumiy ma'lumot olish uchun qo'llanma ga qarang.

Redis'dan ActiveRecord orqali foydalanish uchun sizning sinfingiz [[yii\redis\ActiveRecord]] vorisi bo'lish va sinfingizda kamida attributes() metodi bo'lishi kerak.

PrimaryKey'ni [[yii\redis\ActiveRecord::primaryKey()]] orqali tanitish mumkin, agar berilmagan bo'lsa, id PrimaryKey sifatida tanitiladi. PrimaryKey'ni ko'rsatmagan bo'lsangiz, PrimaryKey sifatida id olinganligini tekshiring.

Quyida Customer nomli namunaviy model keltirilgan:

class Customer extends \yii\redis\ActiveRecord
{
    /**
     * [@return](https://github.com/return) array the list of attributes for this record
     */
    public function attributes()
    {
        return ['id', 'name', 'address', 'registration_date'];
    }

    /**
     * [@return](https://github.com/return) ActiveQuery defines a relation to the Order record (can be in other database, e.g. elasticsearch or sql)
     */
    public function getOrders()
    {
        return $this->hasMany(Order::className(), ['customer_id' => 'id']);
    }

    public static function find()
    {
        return new CustomerQuery(get_called_class());
    }
}

class CustomerQuery extends \yii\redis\ActiveQuery
{
    /**
     * Defines a scope that modifies the `$query` to return only active(status = 1) customers
     */
    public function active()
    {
        return $this->andWhere(['status' => 1]);
    }
}

Общее использование redis ActiveRecord очень похоже на БД ActiveRecord как описано в руководстве. Он поддерживает тот же интерфейс и функции, за исключением следующих ограничений:

Redis'dan ActiveRecord'da foydalanish, ma'lumotlar bazasi bilan ishlashga juda o'xshaydi. Faqat u quyidagi cheklovlardan tashqari bir xil interfeys va xususiyatlarni qo'llab-quvvatlaydi:

  • Redis SQL'ni qo'llab-quvvatlamagani uchun quidagi metodlardan foydalanib bo'lmaydi where(), limit(), offset(), orderBy() va indexBy().
  • via - jadval via orqali aniqlab (bog'lanib) bo'lmaydi, chunki redisda jadvallar mavjud emas. Siz bog'lanishlarni boshqa ma'lumotlar orqali belgilashingiz mumkin.

Redis ActiveRecords dan oddiy ActiveRecord sinflariga va aksincha bog'lanishlarni aniqlashingiz mumkin.

Masalan:

$customer = new Customer();
$customer->attributes = ['name' => 'test'];
$customer->save();
echo $customer->id; // id will automatically be incremented if not set explicitly

$customer = Customer::find()->where(['name' => 'test'])->one(); // find by query
$customer = Customer::find()->active()->all(); // find all by query (using the `active` scope)
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity