mirror of
https://github.com/dg/dibi.git
synced 2025-08-05 05:37:39 +02:00
improved dibi, Texy and Nette exceptions compatibility
This commit is contained in:
@@ -23,6 +23,11 @@
|
||||
|
||||
/**
|
||||
* Custom output for Nette::Debug.
|
||||
*
|
||||
* @author David Grudl
|
||||
* @copyright Copyright (c) 2004, 2008 David Grudl
|
||||
* @package Nette
|
||||
* @version $Revision$ $Date$
|
||||
*/
|
||||
interface IDebuggable
|
||||
{
|
||||
|
@@ -98,12 +98,12 @@ abstract class Object
|
||||
*/
|
||||
protected function __call($name, $args)
|
||||
{
|
||||
if ($name === '') {
|
||||
throw new /*::*/MemberAccessException("Call to method without name.");
|
||||
}
|
||||
|
||||
$class = get_class($this);
|
||||
|
||||
if ($name === '') {
|
||||
throw new /*::*/MemberAccessException("Call to class '$class' method without name.");
|
||||
}
|
||||
|
||||
// event functionality
|
||||
if (self::hasEvent($class, $name)) {
|
||||
$list = $this->$name;
|
||||
@@ -155,17 +155,18 @@ abstract class Object
|
||||
*/
|
||||
protected function &__get($name)
|
||||
{
|
||||
$class = get_class($this);
|
||||
|
||||
if ($name === '') {
|
||||
throw new /*::*/MemberAccessException("Cannot read an property without name.");
|
||||
throw new /*::*/MemberAccessException("Cannot read an class '$class' property without name.");
|
||||
}
|
||||
|
||||
// property getter support
|
||||
$class = get_class($this);
|
||||
$m = 'get' . $name;
|
||||
if (self::hasAccessor($class, $m)) {
|
||||
// ampersands:
|
||||
// - using &__get() because declaration should be forward compatible (e.g. with Nette::Web::Html)
|
||||
// - not using &$this->$m because user could bypass property setter by: $x = & $obj->property; $x = 'new value';
|
||||
// - uses &__get() because declaration should be forward compatible (e.g. with Nette::Web::Html)
|
||||
// - doesn't call &$this->$m because user could bypass property setter by: $x = & $obj->property; $x = 'new value';
|
||||
$val = $this->$m();
|
||||
return $val;
|
||||
|
||||
@@ -179,19 +180,20 @@ abstract class Object
|
||||
/**
|
||||
* Sets value of a property. Do not call directly.
|
||||
*
|
||||
* @param string property name
|
||||
* @param mixed property value
|
||||
* @param string property name
|
||||
* @param mixed property value
|
||||
* @return void
|
||||
* @throws ::MemberAccessException if the property is not defined or is read-only
|
||||
*/
|
||||
protected function __set($name, $value)
|
||||
{
|
||||
$class = get_class($this);
|
||||
|
||||
if ($name === '') {
|
||||
throw new /*::*/MemberAccessException('Cannot assign to an property without name.');
|
||||
throw new /*::*/MemberAccessException("Cannot assign to an class '$class' property without name.");
|
||||
}
|
||||
|
||||
// property setter support
|
||||
$class = get_class($this);
|
||||
if (self::hasAccessor($class, 'get' . $name)) {
|
||||
$m = 'set' . $name;
|
||||
if (self::hasAccessor($class, $m)) {
|
||||
@@ -211,7 +213,7 @@ abstract class Object
|
||||
/**
|
||||
* Is property defined?
|
||||
*
|
||||
* @param string property name
|
||||
* @param string property name
|
||||
* @return bool
|
||||
*/
|
||||
protected function __isset($name)
|
||||
|
@@ -1,110 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Nette Framework
|
||||
*
|
||||
* Copyright (c) 2004, 2008 David Grudl (http://davidgrudl.com)
|
||||
*
|
||||
* This source file is subject to the "Nette license" that is bundled
|
||||
* with this package in the file license.txt.
|
||||
*
|
||||
* For more information please see http://nettephp.com/
|
||||
*
|
||||
* @copyright Copyright (c) 2004, 2008 David Grudl
|
||||
* @license http://nettephp.com/license Nette license
|
||||
* @link http://nettephp.com/
|
||||
* @category Nette
|
||||
* @package Nette
|
||||
*/
|
||||
|
||||
/*no namespace*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
some useful SPL exception:
|
||||
|
||||
- LogicException
|
||||
- InvalidArgumentException
|
||||
- LengthException
|
||||
- RuntimeException
|
||||
- OutOfBoundsException
|
||||
- UnexpectedValueException
|
||||
|
||||
other SPL exceptions are ambiguous; do not use them
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The exception that is thrown when the value of an argument is
|
||||
* outside the allowable range of values as defined by the invoked method.
|
||||
*/
|
||||
class ArgumentOutOfRangeException extends InvalidArgumentException
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The exception that is thrown when a method call is invalid for the object's
|
||||
* current state, method has been invoked at an illegal or inappropriate time.
|
||||
*/
|
||||
class InvalidStateException extends RuntimeException // or InvalidOperationException?
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The exception that is thrown when a requested method or operation is not implemented.
|
||||
*/
|
||||
class NotImplementedException extends LogicException
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The exception that is thrown when an invoked method is not supported. For scenarios where
|
||||
* it is sometimes possible to perform the requested operation, see InvalidStateException.
|
||||
*/
|
||||
class NotSupportedException extends LogicException
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The exception that is thrown when accessing a class member (property or method) fails.
|
||||
*/
|
||||
class MemberAccessException extends LogicException
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The exception that is thrown when an I/O error occurs.
|
||||
*/
|
||||
class IOException extends RuntimeException
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The exception that is thrown when accessing a file that does not exist on disk.
|
||||
*/
|
||||
class FileNotFoundException extends IOException
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The exception that is thrown when part of a file or directory cannot be found.
|
||||
*/
|
||||
class DirectoryNotFoundException extends IOException
|
||||
{
|
||||
}
|
@@ -30,9 +30,31 @@ if (version_compare(PHP_VERSION, '5.1.0', '<')) {
|
||||
|
||||
|
||||
|
||||
// nette libraries
|
||||
/**
|
||||
* Compatibility with Nette
|
||||
*/
|
||||
if (!class_exists('NotImplementedException', FALSE)) {
|
||||
require_once dirname(__FILE__) . '/Nette/exceptions.php';
|
||||
class NotImplementedException extends LogicException {}
|
||||
}
|
||||
|
||||
if (!class_exists('NotSupportedException', FALSE)) {
|
||||
class NotSupportedException extends LogicException {}
|
||||
}
|
||||
|
||||
if (!class_exists('MemberAccessException', FALSE)) {
|
||||
class MemberAccessException extends LogicException {}
|
||||
}
|
||||
|
||||
if (!class_exists('InvalidStateException', FALSE)) {
|
||||
class InvalidStateException extends RuntimeException {}
|
||||
}
|
||||
|
||||
if (!class_exists('IOException', FALSE)) {
|
||||
class IOException extends RuntimeException {}
|
||||
}
|
||||
|
||||
if (!class_exists('FileNotFoundException', FALSE)) {
|
||||
class FileNotFoundException extends IOException {}
|
||||
}
|
||||
|
||||
if (!class_exists(/*Nette::*/'Object', FALSE)) {
|
||||
|
@@ -1,57 +1,57 @@
|
||||
----------------------------------------------------------------------------------
|
||||
Tento text je NEOFICI<43>LN<4C>M p<>ekladem "dibi license". Nevyjad<61>uje pr<70>vn<76> podstatu
|
||||
Tento text je NEOFICI<43>LN<4C>M p<>ekladem "Dibi license". Nevyjad<61>uje pr<70>vn<76> podstatu
|
||||
podm<EFBFBD>nek pro <20><><EFBFBD>en<65> tohoto softwaru - k tomuto <20><>elu slou<6F><75> v<>hradn<64> p<>vodn<64>
|
||||
anglick<EFBFBD> verze licence.
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Dibi Licence, Verze 1
|
||||
=====================
|
||||
Dibi Licence, verze 1
|
||||
======================
|
||||
|
||||
Copyright (c) 2005, 2008 David Grudl (http://davidgrudl.com)
|
||||
V<EFBFBD>echna pr<70>va vyhrazena.
|
||||
|
||||
Tato licence je pr<70>vn<76> ujedn<64>n<EFBFBD> mezi v<>mi a Davidem Grudlem pro pot<6F>eby
|
||||
pou<EFBFBD>it<EFBFBD> "dibi" (d<>le "Software"). By obtaining the Software you agree to comply
|
||||
with the terms and conditions of this license.
|
||||
Tato licence je pr<70>vn<76> ujedn<64>n<EFBFBD> mezi v<>mi a Davidem Grudlem (d<>le Author)
|
||||
pro pot<6F>eby pou<EFBFBD>it<EFBFBD> "dibi" (d<>le "Software"). Z<EFBFBD>sk<EFBFBD>n<EFBFBD>m, pou<6F>it<69>m
|
||||
a/nebo zkop<6F>rov<6F>n<EFBFBD>m Software projevujete souhlas s t<>m, <20>e jste p<>e<EFBFBD>etli,
|
||||
porozum<EFBFBD>li a budete jednat v souladu s podm<64>nkami t<>to licence.
|
||||
|
||||
|
||||
POVOLEN<EFBFBD> POU<4F>IT<49>
|
||||
----------------
|
||||
|
||||
M<EFBFBD><EFBFBD>ete pou<6F><75>vat, kop<6F>rovat, modifikovat a distribuovat Software a jeho
|
||||
dokumentaci, v p<>vodn<64>m i upravovan<61>m tvaru, k jak<61>mukoliv <20><>elu, a to
|
||||
za n<EFBFBD>sleduj<EFBFBD>c<EFBFBD>ch podm<64>nek:
|
||||
Je povoleno pou<6F><75>vat, kop<6F>rovat, modifikovat a distribuovat Software
|
||||
a jeho dokumentaci, v p<>vodn<64>m i upravovan<61>m tvaru, pro jak<61>koliv <20><>el,
|
||||
za p<EFBFBD>edpokladu, <20>e jsou spln<6C>ny tyto podm<64>nky:
|
||||
|
||||
1. Kopie tohoto licen<65>n<EFBFBD>ho ujedn<64>n<EFBFBD> mus<75> b<>t p<>ilo<6C>ena v distribuci.
|
||||
1. Kopie t<EFBFBD>to licen<65>n<EFBFBD> smlouvy mus<75> b<>t sou<6F><75>st<73> distribuce.
|
||||
|
||||
2. <20><><EFBFBD>en<65> zdrojov<6F> k<>d mus<75> obsahovat v<><76>e uvedenou informaci o copyrightu
|
||||
ve v<>ech souborech zdrojov<6F>ho k<>du.
|
||||
2. <20><><EFBFBD>en<65> zdrojov<6F> k<>d mus<75> zachovat v<><76>e uvedenou informaci o autorsk<EFBFBD>ch
|
||||
pr<EFBFBD>vech ve v<>ech souborech zdrojov<6F>ho k<>du.
|
||||
|
||||
3. <20><><EFBFBD>en<65> bin<69>rn<72> tvar mus<75> n<EFBFBD>st v<><76>e uvedenou informaci o copyrightu ve sv<73>
|
||||
dokumentaci a/nebo dal<EFBFBD><EFBFBD>ch materi<72>lech poskytovan<61>ch s distribuc<75>.
|
||||
3. <20><><EFBFBD>en<65> bin<69>rn<72> tvar mus<75> reprodukovat v<><76>e uvedenou informaci o autorsk<EFBFBD>ch
|
||||
pr<EFBFBD>vech v dokumentaci a/nebo jin<EFBFBD>ch materi<72>lech poskytovan<61>ch s distribuc<75>.
|
||||
|
||||
4. Produkty odvozen<65> od tohoto Software mus<75> ve sv<73> dokumentaci a/nebo
|
||||
dal<EFBFBD><EFBFBD>ch materi<72>lech poskytovan<61>ch s distribuc<75> obsahovat zm<7A>nku, <20>e jsou
|
||||
odvozen<EFBFBD> od "dibi".
|
||||
4. Produkty odvozen<65> od Software mus<75> obsahovat potvrzen<65>, <20>e jsou odvozen<65>
|
||||
od "dibi", ve sv<73> dokumentaci a/nebo jin<69>ch materi<72>lech
|
||||
poskytovan<EFBFBD>ch s distribuc<75>.
|
||||
|
||||
5. N<>zev "dibi" nesm<73> b<>t pou<6F>it p<>i podpo<70>e nebo pr<EFBFBD>vn<EFBFBD>ch aktech
|
||||
souvisej<EFBFBD>c<EFBFBD>ch s produkty odvozen<EFBFBD>mi z tohoto Software bez p<>edchoz<6F>ho
|
||||
p<>semn<6D>ho souhlasu Davida Grudla.
|
||||
5. N<>zev "dibi" nesm<73> b<>t pou<6F>it p<>i podpo<70>e nebo propagaci produkt<6B>
|
||||
odvozen<65>mi ze Software bez p<>edchoz<6F>ho p<>semn<6D>ho souhlasu Autora.
|
||||
|
||||
6. Produkty odvozen<65> od tohoto Software nesm<73> b<>t nazv<7A>ny "dibi",
|
||||
ani se nesm<73> "dibi" objevovat v jejich n<>zvu bez p<>edchoz<6F>ho
|
||||
p<>semn<6D>ho souhlasu Davida Grudla.
|
||||
6. Produkty odvozen<65> od Software nesm<73> b<>t nazv<7A>ny "dibi",
|
||||
ani se nesm<73> "dibi" objevit v jejich n<>zvu bez p<>edchoz<6F>ho
|
||||
p<>semn<6D>ho souhlasu Autora.
|
||||
|
||||
|
||||
INDEMNITY
|
||||
---------
|
||||
ZBAVEN<EFBFBD> ZODPOV<4F>DNOSTI
|
||||
---------------------
|
||||
|
||||
You agree to indemnify and hold harmless the authors of the Software and
|
||||
any contributors for any direct, indirect, incidental, or consequential
|
||||
third-party claims, actions or suits, as well as any related expenses,
|
||||
liabilities, damages, settlements or fees arising from your use or misuse
|
||||
of the Software, or a violation of any terms of this license.
|
||||
Souhlas<EFBFBD>te se zbaven<65>m zodpov<6F>dnosti a kryt<79>m Autora a p<>isp<73>vatel<65> v<><76>i
|
||||
jak<EFBFBD>mkoliv p<><70>m<EFBFBD>m, nep<65><70>m<EFBFBD>m, n<>hodn<64>m nebo n<>sledn<64>m odjinud poch<63>zej<65>c<EFBFBD>m <20>kod<6F>m,
|
||||
<EFBFBD>alob<EFBFBD>m nebo spor<6F>m, jako<6B> i p<>ed v<>emi souvisej<65>c<EFBFBD>mi n<>klady, z<>vazky,
|
||||
od<EFBFBD>kodn<EFBFBD>n<EFBFBD>mi, <20>hradami nebo poplatky vypl<70>vaj<61>c<EFBFBD>ch z pou<6F><75>v<EFBFBD>n<EFBFBD> nebo
|
||||
nespr<EFBFBD>vn<EFBFBD>ho u<>it<69> Software, nebo z poru<72>en<65> podm<64>nek t<>to licence.
|
||||
|
||||
|
||||
Z<EFBFBD>RUKA SE NEPOSKYTUJE
|
||||
|
25
license.txt
25
license.txt
@@ -1,12 +1,13 @@
|
||||
The Dibi License, Version 1
|
||||
===========================
|
||||
============================
|
||||
|
||||
Copyright (c) 2005, 2008 David Grudl (http://davidgrudl.com)
|
||||
All rights reserved.
|
||||
|
||||
This license is a legal agreement between you and David Grudl for the use
|
||||
of "dibi" (the "Software"). By obtaining the Software you agree to comply
|
||||
with the terms and conditions of this license.
|
||||
This license is a legal agreement between you and David Grudl (the "Author")
|
||||
for the use of "dibi" (the "Software"). By obtaining, using and/or
|
||||
copying the Software, you agree that you have read, understood, and will
|
||||
comply with the terms and conditions of this license.
|
||||
|
||||
|
||||
PERMITTED USE
|
||||
@@ -28,22 +29,22 @@ the following conditions are met:
|
||||
they are derived from "dibi" in their documentation and/or other
|
||||
materials provided with the distribution.
|
||||
|
||||
5. The name "dibi" must not be used to endorse or promote products derived
|
||||
from the Software without prior written permission from David Grudl.
|
||||
5. The name "dibi" must not be used to endorse or promote products
|
||||
derived from the Software without prior written permission from Author.
|
||||
|
||||
6. Products derived from the Software may not be called "dibi",
|
||||
nor may "dibi" appear in their name, without prior written
|
||||
permission from David Grudl.
|
||||
permission from Author.
|
||||
|
||||
|
||||
INDEMNITY
|
||||
---------
|
||||
|
||||
You agree to indemnify and hold harmless the authors of the Software and
|
||||
any contributors for any direct, indirect, incidental, or consequential
|
||||
third-party claims, actions or suits, as well as any related expenses,
|
||||
liabilities, damages, settlements or fees arising from your use or misuse
|
||||
of the Software, or a violation of any terms of this license.
|
||||
You agree to indemnify and hold harmless the Author and any contributors
|
||||
for any direct, indirect, incidental, or consequential third-party claims,
|
||||
actions or suits, as well as any related expenses, liabilities, damages,
|
||||
settlements or fees arising from your use or misuse of the Software,
|
||||
or a violation of any terms of this license.
|
||||
|
||||
|
||||
DISCLAIMER OF WARRANTY
|
||||
|
Reference in New Issue
Block a user