Download the PHP package offsite-solutions/tholos without Composer

On this page you can find all versions of the php package offsite-solutions/tholos. 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 tholos

Tholos Framework

Tholos is a PHP component-based GUI framework built on top of the Eisodos framework. It provides a server-rendered, database-driven component architecture for building HTML applications with AJAX capabilities, PDF generation, role-based access control, and data caching.

Applications are designed visually using TholosBuilder (a companion web app) and compiled into .tcd (Tholos Component Definition) cache files that the Tholos runtime loads and renders.

Requirements

Installation


Architecture Overview

Bootstrap Chain

Access singletons via Tholos::$app (TholosApplication) and Tholos::$logger (TholosLogger).

Application Structure

Every Tholos application follows this component hierarchy:

Request Flow

  1. Route Resolution -- tholos_route parameter selects the TRoute component
  2. Action Resolution -- tholos_action parameter selects the TAction (default: index)
  3. Initialization -- all components' init() is called; TRoute optionally runs InitSessionProvider
  4. Auto-Open -- TDataProviders with AutoOpenAllowed=true execute their queries/procedures
  5. Rendering -- recursive tree walk: each component's render() returns HTML; children are rendered first, their output passed as $content to the parent
  6. Response -- output finalized based on TAction's ResponseType property

Component System

All components extend TComponent. Components are defined in TholosBuilder and compiled into .tcd files. At runtime, TholosApplication loads these definitions, instantiates the PHP classes, and calls their lifecycle methods.

Component Lifecycle

Properties

Each component has typed properties defined in TholosBuilder:

Type Description
STRING Plain string value
NUMBER Numeric value
BOOLEAN true/false (configurable via Tholos.BoolTrue / Tholos.BoolFalse)
TEXT Multi-line text
JSON JSON structure
ARRAY Array value
TEMPLATE Eisodos template name
PARAMETER Reference to an Eisodos parameter (resolved via $parameterHandler->getParam())
COMPONENT Reference to another component by ID

Properties are accessed via $component->getProperty('Name', $default) which automatically parses dynamic expressions.

Property Expression Language

Property values support a dynamic expression syntax that is resolved at runtime:

Reference expressions (@)

Syntax Resolves to
@this.PropertyName This component's own property
@parent.PropertyName Parent component's property
@route.PropertyName Current route's property
@ComponentName.PropertyName Named sibling component's property
@(ComponentType).PropertyName First parent of the given type
@(>ComponentType).PropertyName First child of the given type
@(parameter).ParamName Eisodos parameter value

Defaults (|) -- cascading fallback chain:

If the parameter doesn't exist, the value false is used. Multiple defaults can be chained: @comp.prop|@other.prop|literal.

Concatenation (++) -- joins multiple expressions:

Chained property access (.) -- navigate through COMPONENT-type properties:

If DBField is a COMPONENT property, it resolves to that component, then reads Value from it.

Callback (%) -- calls a template callback function:

Events

Components define two types of events:

PHP Events (type=PHP) -- server-side, called during rendering:

GUI Events (type=GUI) -- client-side JavaScript:

Role-Based Access Control

TRoleManager (optional child of TApplication) controls access:


Component Reference

For the full, detailed component type reference (all properties, events, methods, inheritance, and parent constraints), see:

docs/Tholos_Component_Types.md

Below is a functional overview of each component category.

Layout & Structure

Component Description
TAction Defines an action within a route. ResponseType controls output format: HTML, JSON, JSONDATA, PLAINTEXT, XML, PDF, NONE. References a TPage for layout.
TPage HTML page layout wrapper. Renders its Template property via Eisodos template engine.
TTemplate Renders an Eisodos template by name (from Template property).
TContainer Generic HTML container. ContainerType property sets the tag (div, span, section, etc.).
TCell Table cell container.
TColumn Column-based layout container.
TFormContainer Groups form controls visually.
TWidget Panel/card container with optional header.
TModal Bootstrap modal dialog.
TPartial Renders content and stores it in a named parameter (ParameterName) instead of outputting HTML. Supports Cacheable mode.
TDocumentTitle Sets the HTML <title>.
TJSLib Includes JavaScript/CSS files via head or foot items.

Navigation & Routing

Component Description
TRoute Represents a route. Matched by tholos_route parameter. Can run InitSessionProvider on init. PersistentSession controls session persistence.
TAction Action within a route. Matched by tholos_action parameter (default: index). HTTPMethod constrains allowed methods (GET, POST, etc.).
TConfirmDialog Confirmation dialog with configurable buttons (OK, Cancel, Yes, No, Custom).
TConfirmButton Button within a TConfirmDialog.

Form Controls

All form controls extend TFormControl which extends TControl. Common properties: DBField (data binding), Value, Label, LabelSize, ControlSize, Placeholder, Readonly, Required, Visible, Enabled.

Component Description
TForm HTML <form> wrapper. Properties: URL, Method, Target, Validator, ValidateOnInit. Events: onBeforeSubmit, onSubmitSuccess, onSubmitError, onValidateSuccess, onValidateError, onSuccessAlert, onErrorAlert, onCancel.
TEdit Text input (<input>). Properties: HTMLInputType (text, password, email, etc.), MaxLength, Autocomplete. Event: onEnterKeyPressed.
TCheckbox Checkbox control. Properties: CheckedValue, UncheckedValue.
TRadio Radio button group. Child TRadio.item entries define options.
TDateTimePicker Date/time picker (Tempus Dominus). Properties: DateFormat, DateFormatParameter.
TLOV List of Values -- dropdown/autocomplete. Properties: LOVSource (data provider), AjaxURL for remote search, Multiple. Child TLOVParameter for parameters.
TFileUpload File upload control.
TText Multi-line textarea.
THTMLEdit Rich text editor (RichTextEditor).
TStatic Read-only display value.
TLabel Label element.
THidden Hidden input field.
TImage Image display.
TLink Hyperlink.
TButton Button with click event.
TButtonDropdown Dropdown button with menu items.

Data Layer

Component Description
TDataProvider Abstract base for all data sources. Properties: AutoOpenAllowed, Result, RowCount, TotalRowCount, Success, DatabaseIndex, DataProxy, Caching.
TQuery SQL SELECT query. Properties: sql (with :columns, :orderby, :filter placeholders), Filter, orderby, Offset, RowsPerPage, CountTotalRows, CacheValidity, PartitionedBy.
TStoredProcedure Database stored procedure call. Properties: Procedure, TransactionMode, GenerateDataResult, ErrorCodeParameter, ErrorMessageParameter, CallbackParameter.
TQueryGroup Groups multiple queries to execute together.
TExternalDataProvider Fetches data from an external HTTP endpoint.
TJSONDataProvider Parses JSON data sources.
TAPIPost Extends TStoredProcedure for HTTP API calls. Properties: URL, URLPath, HTTPRequestMethod. TDBParam children serialized to JSON body.
TDBField Maps a database field to a component value. Properties: FieldName, Value, DBValue, DataType (string, integer, float, date, datetime, time, bool, JSON), NullResultParameter, ParseValue. Event: onSetValue (can modify value).
TDBParam Stored procedure parameter binding. Properties: ParameterName, ParameterMode (IN/OUT/INOUT), MDB2DataType, Value, DefaultValue, ParameterNameTransformation.
TDataProxy Proxies data calls to a remote server via HTTP. Properties: URL, HTTPRequestMethod, AJAXMode, TimeOut. Child TDataProxyParameter components define request parameters.
TQueryFilter Adds WHERE conditions to a TQuery. Properties: FieldName, Relation (=, <>, <, >, LIKE, IN, BETWEEN), Value, FilterGroupParameter.
TQueryFilterGroup Groups TQueryFilters with AND/OR logic.
TDPOpen Triggers opening of a referenced data provider.

Grid System

TGrid renders tabular data with filtering, sorting, pagination, transposing, and Excel/chart export.

Key TGrid Properties:

Property Description
ListSource Component reference to TDataProvider
RowsPerPage Rows per page (0 = no pagination)
ActivePage Current page (1-based)
SortedBy Component reference to the currently sorted TGridColumn
SortingDirection ASC or DESC
Scrollable Horizontal scrolling (boolean)
ScrollableY Vertical scrolling (boolean)
Selectable Row selection enabled (boolean)
Transposed Transpose rows/columns (boolean)
GridHTMLType table or div rendering mode
UUID Unique ID for persistent state
Persistent Session key for saving grid state
MasterValue Filter value for master-detail relationships
ViewMode GRID or CHART
ShowRefreshButton Show refresh button (boolean)
ShowScrollCheckbox Show scroll toggle (boolean)
ShowTransposeCheckbox Show transpose toggle (boolean)

Grid Child Components:

Component Description
TGridColumn Column definition. Properties: DBField, Header, Sortable, SortingDirection, GridFilter, MarkChanges.
TGridFilter Column filter definition. Properties: DefaultRelation, Value, Name.
TGridRow Row template definition.
TGridRowActions Row-level action buttons container.
TGridParameter Additional grid parameters.

Grid Filtering (client-side):

Filters are submitted as parameters in the format gridname_f_N=columnname:relation:value (slots 1-99). Relations: =, <>, <, >, <=, >=, LIKE, IN, BETWEEN.

Grid AJAX Refresh:

TGrid_submit(sender, target, urldata) posts form data to the action URL, receives {html: "..."} JSON, and replaces the grid DOM. Emits masterDataChange for detail grids.

Composite Components

Component Description
TWizard Multi-step wizard. Property: ActiveStep. Child TWizardStep components define steps with StepNumber, Title. Events: onBeforeStep, onAfterStep.
TTabs Tabbed interface. Property: DefaultTabPane. Child TTabPane components with Name and Title. Event: onTabChange.
TIterator Loop component. Properties: ListSource, JSONSource. For each row in the data source, renders all children with propagated field values. Event: onZeroResult. selfRenderer=true.
TLinkedComponent Delegates rendering to a referenced Component.
TTimer Client-side timer.
TWorkflow / TWorkflowStep Workflow state machine.

Map Components

Component Description
TMap Google Maps integration. Properties: APIKey, Latitude, Longitude, Zoom, Width, Height.
TMapSource Map data marker. Properties: Latitude, Longitude, Title, InfoWindow.

PDF & Signatures

Component Description
TPDFPage PDF rendering via mPDF. Properties: Template, HeaderContainerName, FooterContainerName, BodyContainerName, CSSFile, Watermark, PDFConfig (JSON mPDF config). Uses %%PARAMETER token syntax for substitution.
TPAdES PAdES digital signatures. Properties: CertificatePath, CertificatePassword, Reason, Location, ContactInfo. Method: signPDF().

Parameters

Component Description
TParameter Base parameter component.
TGlobalParameter Sets a global Eisodos parameter.
TDataParameter Data-bound parameter.
TDataProxyParameter Parameter for TDataProxy requests.
TAPIParameter Parameter for TExternalDataProvider.
TLOVParameter Parameter for TLOV data source.

Template System

Templates are located in assets/templates/tholos/ and processed by the Eisodos template engine.

Naming Convention

Pattern Purpose
ComponentType.main.template Default render template
ComponentType.partial.ID.template Partial render (head, foot, row, etc.)
ComponentType.init.head.template HTML head items (CSS, JS includes)
ComponentType.init.foot.template HTML foot items (scripts)

Template Variables

Every component's generateProps() makes these available to templates:

Template Syntax

Built-in Callback Functions (TholosCallback)

Function Parameters Description
_eq param, value, true, false If parameter equals value, render true template; else false template
_eqs param, value, true, false Same as _eq but returns strings instead of rendering templates
_neq param, value, true, false Not-equals version of _eq
_neqs param, value, true, false Not-equals version of _eqs
_case param, case1..N, else Switch/case rendering templates
_cases param, case1..N, else Switch/case returning strings
_safehtml param HTML-safe output with <pre> wrapping for newlines
_trim value Trim whitespace
_param2 param Double parameter resolution
_listToOptions separator, options, selected Generates <option> tags from delimited list
_generateListValues component_id Generates TLOV/TRadio option markup

Base Template Fragments

These fragments are included by most component templates:


Client-Side JavaScript API

TholosApplication.js

The global Tholos object provides the client-side framework:

Core Methods:

Component Methods (called via eventHandler):

Method Description
TAction_navigate(sender, target, route, eventData) Navigate to a route. Middle-click opens new window.
TControl_getValue(sender, target) Get control's current value
TControl_setLabel(sender, target, eventData) Update label text
TControl_setRequired(sender, target, eventData) Set required attribute
TControl_setVisible(sender, target, eventData) Show/hide control
TControl_getVisible(sender, target) Get visibility state
TFormControl_setVisible(sender, target, eventData) Show/hide form row
TForm_setEnabled(sender, target, eventData) Enable/disable entire form
TComponent_setEnabled(sender, target, eventData) Enable/disable component
TComponent_setDataParameters(sender, target, route, eventData) Update data-* attributes
TLOV_getValue(sender, target) Get LOV selected value(s)
TCheckbox_getValue(sender, target) Get checkbox state
TRadio_getValue(sender, target) Get selected radio value
TRadio_setEnabled(sender, target, eventData) Enable/disable radio group
TGrid_submit(sender, target, urldata) AJAX grid refresh
TGrid_getValue(sender, target) Get selected row value
TGrid_getFilterSQL(sender, target) Get current filter SQL
TGrid_setVisible(sender, target, eventData) Show/hide grid
TGrid_changeViewMode(formId, viewMode) Switch GRID/CHART

TGrid.js

Grid-specific functions:

Grid Events (jQuery custom events):

Client-Side Libraries


Response Types

TAction's ResponseType property determines how the rendered output is delivered:

Type Content-Type Description
HTML text/html Full HTML5 page
HTMLSnippet text/html Partial HTML (for AJAX loaders)
JSON application/json {success, errormsg, errorcode, html, callback, data}
JSONDATA application/json Raw JSON data
XML application/xml XML output
PLAINTEXT text/plain Plain text
PDF application/pdf PDF via mPDF (requires TPDFPage)
BINARY varies File download
PROXY varies Proxied response from TDataProxy
CUSTOM varies Custom response handling
NONE -- No output (side-effects only)

Caching System

Tholos supports three caching backends configured via Tholos.CacheMethod:

Backend Setting Description
File file JSON cache files in Tholos.CacheDir
Redis redis Redis server at Tholos.CacheServer:Tholos.CachePort
Memory memory PHP session-scoped parameters

Cache Scope

TQuery Caching

Set on TQuery via Caching property:

Mode Description
Disabled No caching
Enabled Cache entire result set
Partitioned Cache by PartitionedBy field value

CacheValidity sets lifetime in minutes. CacheSQLConflict controls behavior when cached SQL doesn't match current query: ReadCache, RewriteCache, or DisableCaching.

Cache File Structure


Configuration Parameters

Key Eisodos parameters used by Tholos (typically set in application config):

Application

Parameter Description
Tholos.ApplicationCacheDir Directory for compiled .tcd files
Tholos.AccessLog Access log file path
Tholos.AccessLog.Format Log format (use % as variable prefix)

Data Providers

Parameter Default Description
Tholos.AutoOpenDataProvider Always Page-generation auto-open mode for TDataProvider components. Always: auto-open every eligible provider (legacy). Disabled: never auto-open in the page-generation phase. Optimized: auto-open only providers that are directly called (render root) or referenced from within the render subtree. In Optimized mode, providers coupled only via global parameters / template functions are not detected.

Caching

Parameter Default Description
Tholos.CacheDir Cache files directory
Tholos.CacheMethod file file, redis, or memory
Tholos.CacheServer localhost Redis host
Tholos.CachePort 6379 Redis port
Tholos.CacheTimeout 0.0 Redis connection timeout
Tholos.CacheLockWait 100 File lock wait (microseconds)
Tholos.CacheLockLoop 20 Max lock retry attempts

Boolean Handling

Parameter Default Description
Tholos.BoolFalse false,f,n,0 Comma-separated values treated as false
Tholos.BoolTrue true,t,y,1,* Comma-separated values treated as true

PDF

Parameter Description
Tholos.mPDF JSON mPDF configuration

Security

Parameter Description
Tholos.CSPEnabled Enable Content Security Policy headers
Tholos.CSPJavascriptHosts CSP script-src allowed hosts
Tholos.CSPFontHosts CSP font-src allowed hosts
Tholos.nonce CSP nonce (auto-generated if empty)

Debugging

Parameter Description
Tholos.debugLevel Server-side debug verbosity
Tholos.debugToFile Debug log path (tokens: SESSIONID, TIME)
Tholos.debugToUrl Remote debug endpoint
Tholos.JSDebugLevel Client-side JavaScript debug level

Grid Defaults

Parameter Description
Tholos.TGrid.Scrollable Default horizontal scroll for all grids
Tholos.TGrid.RowsPerPage Default rows per page

TholosBuilder

TholosBuilder is a companion web application used to visually design Tholos applications. It provides:

Compilation Output

The compiler (compile2()) generates:

  1. _tholos.init -- PHP file containing:

    • $this->componentTypes[] -- type definitions with inheritance
    • $this->componentTypeIndex[] -- type ID to class path mapping
    • $this->componentIndex[] -- component ID to metadata mapping
  2. {RouteName}.tcd -- PHP file per route containing:

    • $this->componentDefinitions[] -- array keyed by component ID with:
      • pid -- parent ID
      • h -- type hierarchy path (e.g., TStoredProcedure.TDataProvider.TComponent)
      • o -- component name
      • p -- JSON-encoded properties ({n, t, v, c, d})
      • e -- JSON-encoded events ({n, t, v, m, p, c, i, a})
  3. {RouteName}.tcs -- human-readable source representation (for version control)

Naming Conventions


All versions of tholos with dependencies

PHP Build Version
Package Version
Requires php Version >=8.4
offsite-solutions/eisodos Version @dev
ext-json Version *
ext-mbstring Version *
ext-bcmath Version *
ext-pcntl Version *
ext-simplexml Version *
ext-zip Version *
ext-openssl Version *
ext-curl Version *
ext-redis Version *
phpoffice/phpspreadsheet Version 5.*
mpdf/mpdf Version 8.3.1
azurre/php-array-xml-converter Version 0.5.1
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 offsite-solutions/tholos contains the following files

Loading the files please wait ...