1. Go to this page and download the library: Download lumax/aurora-db library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lumax / aurora-db example snippets
use Luma\AuroraDatabase\DatabaseConnection;
use Luma\AuroraDatabase\Model\Aurora;
$databaseConnection = new DatabaseConnection(
'mysql:host=localhost;port=3306;',
'username',
'password'
);
$pdo = $databaseConnection->getConnection();
use Luma\AuroraDatabase\Attributes\Column;
use Luma\AuroraDatabase\Attributes\Identifier;
use Luma\AuroraDatabase\Attributes\Schema;
use Luma\AuroraDatabase\Model\Aurora;
class User extends Aurora
{
#[Identifier]
#[Column('intUserId')]
protected int $id;
#[Column('strUsername')]
private string $username;
/**
* @return string
*/
public function getUsername(): string
{
return $this->username;
}
}
use Luma\AuroraDatabase\Attributes\Column;
use Luma\AuroraDatabase\Attributes\Identifier;
use Luma\AuroraDatabase\Attributes\Schema;
use Luma\AuroraDatabase\Model\Aurora;
class Article extends Aurora
{
#[Identifier]
#[Column('intArticleId')]
protected int $id;
#[Column('strTitle')]
private string $title;
#[Column('intAuthorId')]
private User $author;
/**
* @return string
*/
public function getTitle(): string
{
return $this->title;
}
/**
* @return string
*/
public function setTitle(): string
{
$this->title = $title;
}
/**
* @return User
*/
public function getAuthor(): User
{
return $this->author;
}
}
#[AuroraCollection(class: Article::class, property: 'author')]
private Collection $articles;
/**
* @return Collection<Article>
*/
public function getArticles(): Collection
{
return $this->articles;
}
#[Schema('Core')]
#[Table('User')]
class User extends Aurora {
...
}
// Create a new user. Not yet saved to the database.
$user = User::create([
'username' => 'Dan',
]);
// Save to the database.
$user->save();
// Create a new article and save to the database.
Article::create([
'title' => 'Hello, Aurora!',
'author' => $user,
])->save();
$user = User::find(1);
// Find by takes the PROPERTY name (not column name, unless they're the same of course)
$user = User::findBy('username', 'Dan');
$article = Article::getLatest();
$articles = Article::all();
$userCount = User::count();
// Creating some new records in a blank table (with added email address column)
User::create('User One', '[email protected]')->save();
User::create('User Two', '[email protected]')->save();
User::create('User Three', '[email protected]')->save();
// Return all users as an array
$user = User::select()->get();
// Specify columns
$users = User::select('email')->get();
$users[0]->getEmailAddress(); // [email protected]
$users[0]->getId(); // 2 (we always populate the primary key)
$users[0]->getUsername(); // fails
// Add a where clause
$user = User::select()->whereIs('username', 'User Three')->get();
$user->getId(); // 3
// We can chain whereIs (and other WHERE methods), which automatically converts them to an AND
// Returns NULL as no rows match this query
$user = User::select()->whereIs('username', 'User Three')->whereIs('id', 2)->get();
// We can specify not conditions
$users = User::select()->whereNot('username', 'User Three')->get();
count($users); // 2
// We can perform whereIn/whereNotIn queries
$user = User::select()->whereNotIn('id', [1, 2])->get();
$user->getId(); // 3
$users = User::select('username')->whereIn('id', [1, 3])->get();
count($users); // 2
mysql
CREATE TABLE User (
intUserId int(11) auto_increment not null primary key,
strUsername varchar(60) not null
);
CREATE TABLE Article (
intArticleId int(11) auto_increment not null primary key,
strTitle varchar(255) not null,
intAuthorId int(11) not null,
foreign key (intAuthorId) references User(intUserId)
);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.