Download the PHP package rousi/bitery without Composer
On this page you can find all versions of the php package rousi/bitery. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package bitery
Bitery - Bit Management Library
Bitery is a library that allows you to work with bits at a higher level, as well as organize the storage of information in bits.
Installation
You can install this library via Composer. It is enough to execute the following command in your working directory:
Usage
Bit Manager Usage
The class is used to change certain bits or a range of bits in a string.
See Range Interface for more information.
[!WARNING] The bits in the class are numbered in each byte from left to right, and not from right to left, as it should be. So, for example, changing bit 7 (numbering starts from zero) will actually affect the first bit on the right.
Bitery Usage
is used to "split" a string into areas, into which information can be written and received using their keys. This allows you to store many Boolean or Integer variables in a compact form.
See Bitery class for more information.
Where Is This Applicable?
I believe this can be applied in three cases:
- To store the settings of something
- To store access flags for something
- To store any other data that can be represented as Boolean values or small numbers
Users Access Flags Example
Let's imagine that we have a users table, and we are faced with the task of storing information about their access for each user. Of course, you can store access information in JSON format or any other text format, but such fields will take up quite a lot of space, especially if there are a lot of such records in the database. Instead, we can create a users Access table in which we describe all the accesses that users may have.
usersAccess table example: |
key (string) | bitStart (uint16) | bitEnd (uint16) | default (uint8) |
|---|---|---|---|---|
| create | 0 | 0 | 0 // false | |
| update | 1 | 1 | 0 // false | |
| delete | 2 | 2 | 0 // false | |
| read | 3 | 3 | 1 // true |
TODO
- Unit tests;
- A Bit Manager that gets the bits by their positions in the correct order (right-to-left for each byte).
License
This library is distributed under the MIT License. Please refer to the LICENSE file for more information.
All versions of bitery with dependencies
ext-json Version *