Skip to content

Commit

Permalink
Merge pull request #74 from TomHAnderson/feature/rst-docs
Browse files Browse the repository at this point in the history
RST docs
  • Loading branch information
TomHAnderson authored Oct 29, 2024
2 parents 0553f0c + 7f1b73e commit cc91da0
Show file tree
Hide file tree
Showing 34 changed files with 615 additions and 1,027 deletions.
113 changes: 0 additions & 113 deletions docs/blameable.md

This file was deleted.

35 changes: 35 additions & 0 deletions docs/blameable.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
=========
Blameable
=========

Blameable behavior will automate the update of username or user reference
fields on your Entities. It works through annotations and can
update fields on creation, update, property subset update, or even on
specific property value change.

* Automatic predefined user field update on creation, update, property
subset update, and even on record property changes.
* Specific annotations for properties, and no interface required.
* Can react to specific property or relation changes to specific value.
* Can be nested with other behaviors.
* Annotation, Yaml and Xml mapping support for extensions.


Installation
============

Add ``LaravelDoctrine\Extensions\Blameable\BlameableExtension``
to ``doctrine.extensions`` config in ``config/doctrine.php``.


Further Reading
===============

See the `official documentation <https://github.com/doctrine-extensions/DoctrineExtensions/blob/main/doc/blameable.md>`_
for use of this behavior.


.. role:: raw-html(raw)
:format: html

.. include:: footer.rst
68 changes: 68 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import sys, os
from sphinx.highlighting import lexers
from pygments.lexers.web import PhpLexer

lexers['php'] = PhpLexer(startinline=True, linenos=0)
lexers['php-annotations'] = PhpLexer(startinline=True, linenos=0)
primary_domain = 'php'

extensions = []
templates_path = ['_templates']
source_suffix = '.rst'
master_doc = 'index'
project = u'Laravel Doctrine ORM Extensions'
copyright = u'2024 laraveldoctrine.org'
version = '9'
html_title = "Extensions for Laravel and Doctrine ORM"
html_short_title = "Laravel Doctrine ORM Extensions"
html_favicon = 'favicon.ico'

exclude_patterns = ['_build']
html_static_path = ['_static']

##### Guzzle sphinx theme

import guzzle_sphinx_theme
html_translator_class = 'guzzle_sphinx_theme.HTMLTranslator'
html_theme_path = guzzle_sphinx_theme.html_theme_path()
html_theme = 'guzzle_sphinx_theme'

# Custom sidebar templates, maps document names to template names.
html_sidebars = {
'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']
}

# Register the theme as an extension to generate a sitemap.xml
extensions.append("guzzle_sphinx_theme")

# Guzzle theme options (see theme.conf for more information)
html_theme_options = {

# Set the path to a special layout to include for the homepage
# "index_template": "homepage.html",

# Allow a separate homepage from the master_doc
# homepage = index

# Set the name of the project to appear in the nav menu
# "project_nav_name": "Guzzle",

# Set your Disqus short name to enable comments
# "disqus_comments_shortname": "my_disqus_comments_short_name",

# Set you GA account ID to enable tracking
# "google_analytics_account": "my_ga_account",

# Path to a touch icon
# "touch_icon": "",

# Specify a base_url used to generate sitemap.xml links. If not
# specified, then no sitemap will be built.
"base_url": "https://extensions.docs.laraveldoctrine.org"

# Allow the "Table of Contents" page to be defined separately from "master_doc"
# tocpage = Contents

# Allow the project link to be overriden to a custom URL.
# projectlink = http://myproject.url
}
74 changes: 0 additions & 74 deletions docs/custom-functions.md

This file was deleted.

91 changes: 91 additions & 0 deletions docs/custom-functions.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
=========================
Custom Database Functions
=========================

A set of extensions to Doctrine that add support for additional
queryfunctions available in MySQL, Oracle, and SQLite.

When ``LaravelDoctrine\Extensions\BeberleiExtensionsServiceProvider::class``
is included, the following functions will be automatically registered:

.. list-table:: Query/Type Extensions
:widths: 25 75
:header-rows: 1

* - Database
- Functions
* - MySQL
- ``ACOS, ASCII, ASIN, ATAN, ATAN2, BINARY, CEIL, CHAR_LENGTH, CONCAT_WS, COS, COT, COUNTIF, CRC32, DATE, DATE_FORMAT, DATEADD, DATEDIFF, DATESUB, DAY, DAYNAME, DEGREES, FIELD, FIND_IN_SET, FLOOR, FROM_UNIXTIME, GROUP_CONCAT, HOUR, IFELSE, IFNULL, LAST_DAY, MATCH_AGAINST, MD5, MINUTE, MONTH, MONTHNAME, NULLIF, PI, POWER, QUARTER, RADIANS, RAND, REGEXP, REPLACE, ROUND, SECOND, SHA1, SHA2, SIN, SOUNDEX, STD, STRTODATE, SUBSTRING_INDEX, TAN, TIME, TIMESTAMPADD, TIMESTAMPDIFF, UUID_SHORT, WEEK, WEEKDAY, YEAR``
* - Oracle
- ``DAY, MONTH, NVL, TODATE, TRUNC, YEAR``
* - Sqlite
- ``DATE, MINUTE, HOUR, DAY, WEEK, WEEKDAY, MONTH, YEAR, STRFTIME*``


Alternativly you can include the separate classes inside `config/doctrine` config file. Example:

.. code-block:: php
return [
...
/*
|--------------------------------------------------------------------------
| Doctrine custom types
|--------------------------------------------------------------------------
*/
'custom_types' => [
'carbondate' => DoctrineExtensions\Types\CarbonDateType::class,
'carbondatetime' => DoctrineExtensions\Types\CarbonDateTimeType::class,
'carbondatetimetz' => DoctrineExtensions\Types\CarbonDateTimeTzType::class,
'carbontime' => DoctrineExtensions\Types\CarbonTimeType::class
],
/*
|--------------------------------------------------------------------------
| Doctrine custom datetime functions
|--------------------------------------------------------------------------
*/
'custom_datetime_functions' => [
'DATEADD' => DoctrineExtensions\Query\Mysql\DateAdd::class,
'DATEDIFF' => DoctrineExtensions\Query\Mysql\DateDiff::class
],
/*
|--------------------------------------------------------------------------
| Doctrine custom numeric functions
|--------------------------------------------------------------------------
*/
'custom_numeric_functions' => [
'ACOS' => DoctrineExtensions\Query\Mysql\Acos::class,
'ASIN' => DoctrineExtensions\Query\Mysql\Asin::class,
'ATAN' => DoctrineExtensions\Query\Mysql\Atan::class,
'ATAN2' => DoctrineExtensions\Query\Mysql\Atan2::class,
'COS' => DoctrineExtensions\Query\Mysql\Cos::class,
'COT' => DoctrineExtensions\Query\Mysql\Cot::class,
'DEGREES' => DoctrineExtensions\Query\Mysql\Degrees::class,
'RADIANS' => DoctrineExtensions\Query\Mysql\Radians::class,
'SIN' => DoctrineExtensions\Query\Mysql\Sin::class,
'TAN' => DoctrineExtensions\Query\Mysql\Ta::class
],
/*
|--------------------------------------------------------------------------
| Doctrine custom string functions
|--------------------------------------------------------------------------
*/
'custom_string_functions' => [
'CHAR_LENGTH' => DoctrineExtensions\Query\Mysql\CharLength::class,
'CONCAT_WS' => DoctrineExtensions\Query\Mysql\ConcatWs::class,
'FIELD' => DoctrineExtensions\Query\Mysql\Field::class,
'FIND_IN_SET' => DoctrineExtensions\Query\Mysql\FindInSet::class,
'REPLACE' => DoctrineExtensions\Query\Mysql\Replace::class,
'SOUNDEX' => DoctrineExtensions\Query\Mysql\Soundex::class,
'STR_TO_DATE' => DoctrineExtensions\Query\Mysql\StrToDate::class
],
];
.. role:: raw-html(raw)
:format: html

.. include:: footer.rst
Binary file added docs/favicon.ico
Binary file not shown.
6 changes: 6 additions & 0 deletions docs/footer.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

----------

This is documentation for
`laravel-doctrine/extensions <https://github.com/laravel-doctrine/extensions>`_.
Please add your ★ star to the project.
Loading

0 comments on commit cc91da0

Please sign in to comment.