}
return $dbh;
},
'Radds\Service\DataStore\Sphinx\Connection' => function($sm){
//$pdoAuth=$sm->get('Global\Config\Pdo\AuthSphinxSearch');
//var_dump($pdoAuth);
try {
//$dsn="mysql:dbname={$pdoAuth['database']};host={$pdoAuth['hostname']}";
$dsn="mysql:host=127.0.0.1;port=9306;";
$dbh = new PDO($dsn);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die( 'Connection failed: ' . $e->getMessage());
}
return $dbh;
},
Service\DataStore\PDOMySQL\CrudObjectFactory::class => ServiceAwarePseudoConstructorInjector::class,
'Radds\Service\DataStore\Sphinx\CrudObjectFactory' => ServiceAwarePseudoConstructorInjector::class,
),
);
Arguments
"Class "Radds\PDO" not found"
return $creationCallback();
}
/**
* Create a new instance with an already resolved name
*
* This is a highly performance sensitive method, do not modify if you have not benchmarked it carefully
*
* @return object
* @throws ServiceNotFoundException If unable to resolve the service.
* @throws ServiceNotCreatedException If an exception is raised when creating a service.
* @throws ContainerExceptionInterface If any other error occurs.
*/
private function doCreate(string $resolvedName, ?array $options = null)
{
try {
if (! isset($this->delegators[$resolvedName])) {
// Let's create the service by fetching the factory
$factory = $this->getFactory($resolvedName);
$object = $factory($this->creationContext, $resolvedName, $options);
} else {
$object = $this->createDelegatorFromName($resolvedName, $options);
}
} catch (ContainerExceptionInterface $exception) {
throw $exception;
} catch (Exception $exception) {
throw new ServiceNotCreatedException(sprintf(
'Service with name "%s" could not be created. Reason: %s',
$resolvedName,
$exception->getMessage()
), (int) $exception->getCode(), $exception);
}
foreach ($this->initializers as $initializer) {
$initializer($this->creationContext, $object);
}
return $object;
}
Arguments
Laminas\ServiceManager\ServiceManager {#10}
"Radds\Service\DataStore\Sphinx\Connection"
null
// We now deal with requests which may be aliases.
$resolvedName = $this->aliases[$name] ?? $name;
// Update shared service information as we checked if the alias was shared before.
if ($resolvedName !== $name) {
$sharedService = $this->shared[$resolvedName] ?? $sharedService;
}
// The following is only true if the requested service is a shared alias.
$sharedAlias = $sharedService && isset($this->services[$resolvedName]);
// If the alias is configured as a shared service, we are done.
if ($sharedAlias) {
$this->services[$name] = $this->services[$resolvedName];
return $this->services[$resolvedName];
}
// At this point, we have to create the object.
// We use the resolved name for that.
$object = $this->doCreate($resolvedName);
// Cache the object for later, if it is supposed to be shared.
if ($sharedService) {
$this->services[$resolvedName] = $object;
}
// Also cache under the alias name; this allows sharing based on the
// service name used.
if ($sharedAlias) {
$this->services[$name] = $object;
}
return $object;
}
/** {@inheritDoc} */
public function build($name, ?array $options = null)
{
// We never cache when using "build".
$name = $this->aliases[$name] ?? $name;
Arguments
"Radds\Service\DataStore\Sphinx\Connection"
private $transaction=null;
private $connection =null;
protected function setOptions($crudObj){
// return $this->sm()->get()->setAdapter($dbConnect->getConnection())
// ->setDbname($dbConnect->getDbname())
// ->setBaseCollectionName($baseNameSpace['base_collection_name'])
// ->setQuery($query);
if(isset($this->connection) && is_object($this->connection)):
$crudObj->setConnection($this->connection);
else:
$crudObj->setConnection($this->sm()->get('Radds\Service\DataStore\Sphinx\Connection'));
endif;
}
public function setConnection($connection){
$this->connection=$connection;
return this;
}
protected function getCrudStmtDriverName(){
return 'Sphinx';
}
public function hasTransactionSupport(){
Arguments
"Radds\Service\DataStore\Sphinx\Connection"
$this->checkIfValidCrudStmt($crudStmtObj);
else:
throw new \Exception(__NAMESPACE__. '\AbstractCrudObjectFactory::getCrudObj(): A CrudStatement could not be located using the key provided "'.$key .'." Check the spelling and try again.');
endif;
//Initialize
$crudStmtObj->setServiceManager($this->sm());
//The $crudStmtObj will inject itself into the crudObject
$crudObj = $crudStmtObj->getCrudObject();
//Set the params from the repository, if any
$crudStmtObj->setParams($this->params);
$this->setOptions($crudObj);
return $crudObj;
}
protected function checkIfValidCrudStmt($potentialCrudStmtObj){
if( !is_countable($this->crudStmtDriverSpecificInterface) || (count($this->crudStmtDriverSpecificInterface)!==4)) $this->getCrudStmtDriverSpecificInterface();
$interfacesImplemented = class_implements($potentialCrudStmtObj, true);
//does the class implement 'Radds\Service\CrudStatementInterface'?
if(!is_array($interfacesImplemented) || !(in_array('Radds\Service\CrudStatementInterface', $interfacesImplemented))):
throw new \Exception(__NAMESPACE__. '\AbstractCrudObjectFactory::checkIfValidCrudStmt(): The $crudStmt must implement "Radds\Service\CrudStatementInterface" for it to be considered a valid crudStmt. The object used is of the type "'.get_class($potentialCrudStmtObj).'"');
//and more importanly does the class implement a driver specific 'Radds\Service\DataStore\#DRIVERNAME#\Create'?
elseif(!(in_array($this->crudStmtDriverSpecificInterface, $interfacesImplemented))):
throw new \Exception(__NAMESPACE__. '\AbstractCrudObjectFactory::checkIfValidCrudStmt(): The $crudStmt must implement the following interface "'.$this->crudStmtDriverSpecificInterface.'" for it to be considered a valid crudStmt. The object provided is made up of follwing interfaces "'.implode(', ',$interfacesImplemented).'"');
Arguments
Radds\Service\DataStore\Sphinx\Read {#1105}
$this->relatedSearchText=$searchText;
endif;
return $this;
}
public function getCrudObj($commandArgBuilder)
{
$this->commandArgBuilder=$commandArgBuilder;
$this->commandArgBuilder->add($this->sm()->get('CommandArgBuilder\Factory\CommandArg\ActionArg'));
//$commandArgBuilder->add($this->sm()->get('CommandArgBuilder\Factory\CommandArg\SkillLevelArg'));
$crudObj = $this->cof->getCrudObj('ReadAlbum');
$crudStmt =$crudObj->getCrudStmt();
$commitMatchToWhere =false;
if($this->commandArgBuilder->hasArg('search')):
$searchArg=$this->commandArgBuilder->getBuiltArg('search');
if($searchArg->isValid()&&$searchArg->hasSearchText()):
$searchText = $this->searchText = $searchArg->getSearchText();
$crudStmt->matchAgainst($searchText)
;
$this->panelText='Search Results for: "' . $searchText . '"';
$commitMatchToWhere=$this->hasSearchText=true;
Arguments
->setVariables([]);
return $r;
}
public function listingAction()
{
$page = (int)$this->getEvent()->getRouteMatch()->getParam('page',0);
$routeArgs=($page>0)?['page'=>$page]:[];
$this->commandArgBuilder->setBaseUrl($this->url()->fromRoute('album/public/listing', []));
$pageNumberTitle=($page>1)?' | Page ' . $page : '';
$service = $this->sm()->get('Artwork\Model\AlbumListing');
$crudObj = $service->getCrudObj($this->commandArgBuilder);
$cacheCheck = $this->sm()->get('Cacher\Service\CacheCheck');
$cacher=$cacheCheck->getCacher();
if(!$cacheCheck->setKey('album_listing', $service->getCrudStmtString().$page)->isCached()):
$paginatorAdapter = $this->sm()->get('Radds\Pagination\PaginatorAdapter');
$paginatorAdapter->setReadCrudObj($crudObj)
->setPostQueryReplacementObject($this->sm()->get('Artwork\Model\AlbumPaginatorItemsReplacer'))
->setPostQueryReplacementObject($this->sm()->get('Artwork\Model\AlbumGeneralListingItemsReplacer'))
;
$paginator = $this->sm()->get('Radds\Pagination\Paginator');
//POPULATE THE PAGINATOR WITH OPTIONS
$paginator->setAdapter($paginatorAdapter)
Arguments
CommandArgBuilder\Factory\CommandArgBuilder {#1079}
*/
public function onDispatch(MvcEvent $e)
{
$routeMatch = $e->getRouteMatch();
if (! $routeMatch) {
/**
* @todo Determine requirements for when route match is missing.
* Potentially allow pulling directly from request metadata?
*/
throw new DomainException('Missing route matches; unsure how to retrieve action');
}
$action = $routeMatch->getParam('action', 'not-found');
$method = static::getMethodFromAction($action);
if (! method_exists($this, $method)) {
$method = 'notFoundAction';
}
$actionResponse = $this->$method();
$e->setResult($actionResponse);
return $actionResponse;
}
}
}
final protected function setAdmin(\User\Lib\Admin $admin){
$this->admin=$admin;
return $this;
}
final protected function isAdmin(){
return (isset($this->admin) && is_object($this->admin))?true:false;
}
final protected function isMember(){
return (isset($this->member) && is_object($this->member))?true:false;
}
final public function onDispatch(MvcEvent $e)
{
$this->dispatchEvent = $e;
$this->dispatchEvent($e);
return parent::onDispatch($e); // TODO: Change the autogenerated stub
}
//override if needed: called to delegate a service to createRealService method
public function di(ContainerInterface $c){
// do nothing
}
//override if needed: called to inject Dependency Injection
public function getService()
{
//do nothing
}
//override if needed: called when the controller is being dispatched
public function dispatchEvent(MvcEvent $e){
//do nothing
}
Arguments
Laminas\Mvc\MvcEvent {#431}
}
if ($this->sharedManager) {
foreach ($this->sharedManager->getListeners($this->identifiers, $name) as $priority => $listeners) {
$listOfListenersByPriority[$priority][] = $listeners;
}
}
// Sort by priority in reverse order
krsort($listOfListenersByPriority);
// Initial value of stop propagation flag should be false
$event->stopPropagation(false);
// Execute listeners
$responses = new ResponseCollection();
foreach ($listOfListenersByPriority as $listOfListeners) {
foreach ($listOfListeners as $listeners) {
foreach ($listeners as $listener) {
$response = $listener($event);
$responses->push($response);
// If the event was asked to stop propagating, do so
if ($event->propagationIsStopped()) {
$responses->setStopped(true);
return $responses;
}
// If the result causes our validation callback to return true,
// stop propagation
if ($callback && $callback($response)) {
$responses->setStopped(true);
return $responses;
}
}
}
}
return $responses;
}
Arguments
Laminas\Mvc\MvcEvent {#431}
$event->setParams($argv);
}
return $this->triggerListeners($event, $callback);
}
/**
* @inheritDoc
*/
public function triggerEvent(EventInterface $event)
{
return $this->triggerListeners($event);
}
/**
* @inheritDoc
*/
public function triggerEventUntil(callable $callback, EventInterface $event)
{
return $this->triggerListeners($event, $callback);
}
/**
* @inheritDoc
*/
public function attach($eventName, callable $listener, $priority = 1)
{
if (! is_string($eventName)) {
throw new Exception\InvalidArgumentException(sprintf(
'%s expects a string for the event; received %s',
__METHOD__,
is_object($eventName) ? $eventName::class : gettype($eventName)
));
}
$this->events[$eventName][(int) $priority][0][] = $listener;
return $listener;
}
/**
Arguments
Laminas\Mvc\MvcEvent {#431}
Closure($test): bool {#1062 …4}
* @events dispatch.pre, dispatch.post
* @param Request $request
* @param null|Response $response
* @return Response|mixed
*/
public function dispatch(Request $request, Response $response = null)
{
$this->request = $request;
if (! $response) {
$response = new HttpResponse();
}
$this->response = $response;
$e = $this->getEvent();
$e->setName(MvcEvent::EVENT_DISPATCH);
$e->setRequest($request);
$e->setResponse($response);
$e->setTarget($this);
$result = $this->getEventManager()->triggerEventUntil(static fn($test): bool => $test instanceof Response, $e);
if ($result->stopped()) {
return $result->last();
}
return $e->getResult();
}
/**
* Get request object
*
* @return Request
*/
public function getRequest()
{
if (! $this->request) {
$this->request = new HttpRequest();
}
return $this->request;
Arguments
Closure($test): bool {#1062 …4}
Laminas\Mvc\MvcEvent {#431}
);
return $this->complete($return, $e);
} catch (Throwable $exception) {
$return = $this->marshalBadControllerEvent($controllerName, $e, $application, $exception);
return $this->complete($return, $e);
} catch (Exception $exception) { // @TODO clean up once PHP 7 requirement is enforced
$return = $this->marshalBadControllerEvent($controllerName, $e, $application, $exception);
return $this->complete($return, $e);
}
if ($controller instanceof InjectApplicationEventInterface) {
$controller->setEvent($e);
}
$request = $e->getRequest();
$response = $application->getResponse();
$caughtException = null;
try {
$return = $controller->dispatch($request, $response);
} catch (Throwable $ex) {
$caughtException = $ex;
} catch (Exception $ex) { // @TODO clean up once PHP 7 requirement is enforced
$caughtException = $ex;
}
if ($caughtException !== null) {
$e->setName(MvcEvent::EVENT_DISPATCH_ERROR);
$e->setError($application::ERROR_EXCEPTION);
$e->setController($controllerName);
$e->setControllerClass($controller::class);
$e->setParam('exception', $caughtException);
$return = $application->getEventManager()->triggerEvent($e)->last();
if (! $return) {
$return = $e->getResult();
}
}
return $this->complete($return, $e);
Arguments
Laminas\Http\PhpEnvironment\Request {#408}
Laminas\Http\PhpEnvironment\Response {#418}
}
if ($this->sharedManager) {
foreach ($this->sharedManager->getListeners($this->identifiers, $name) as $priority => $listeners) {
$listOfListenersByPriority[$priority][] = $listeners;
}
}
// Sort by priority in reverse order
krsort($listOfListenersByPriority);
// Initial value of stop propagation flag should be false
$event->stopPropagation(false);
// Execute listeners
$responses = new ResponseCollection();
foreach ($listOfListenersByPriority as $listOfListeners) {
foreach ($listOfListeners as $listeners) {
foreach ($listeners as $listener) {
$response = $listener($event);
$responses->push($response);
// If the event was asked to stop propagating, do so
if ($event->propagationIsStopped()) {
$responses->setStopped(true);
return $responses;
}
// If the result causes our validation callback to return true,
// stop propagation
if ($callback && $callback($response)) {
$responses->setStopped(true);
return $responses;
}
}
}
}
return $responses;
}
Arguments
Laminas\Mvc\MvcEvent {#431}
$event->setParams($argv);
}
return $this->triggerListeners($event, $callback);
}
/**
* @inheritDoc
*/
public function triggerEvent(EventInterface $event)
{
return $this->triggerListeners($event);
}
/**
* @inheritDoc
*/
public function triggerEventUntil(callable $callback, EventInterface $event)
{
return $this->triggerListeners($event, $callback);
}
/**
* @inheritDoc
*/
public function attach($eventName, callable $listener, $priority = 1)
{
if (! is_string($eventName)) {
throw new Exception\InvalidArgumentException(sprintf(
'%s expects a string for the event; received %s',
__METHOD__,
is_object($eventName) ? $eventName::class : gettype($eventName)
));
}
$this->events[$eventName][(int) $priority][0][] = $listener;
return $listener;
}
/**
Arguments
Laminas\Mvc\MvcEvent {#431}
Closure($r): bool {#2 …4}
$response = $result->last();
if ($response instanceof ResponseInterface) {
$event->setName(MvcEvent::EVENT_FINISH);
$event->setTarget($this);
$event->setResponse($response);
$event->stopPropagation(false); // Clear before triggering
$events->triggerEvent($event);
$this->response = $response;
return $this;
}
}
if ($event->getError()) {
return $this->completeRequest($event);
}
// Trigger dispatch event
$event->setName(MvcEvent::EVENT_DISPATCH);
$event->stopPropagation(false); // Clear before triggering
$result = $events->triggerEventUntil($shortCircuit, $event);
// Complete response
$response = $result->last();
if ($response instanceof ResponseInterface) {
$event->setName(MvcEvent::EVENT_FINISH);
$event->setTarget($this);
$event->setResponse($response);
$event->stopPropagation(false); // Clear before triggering
$events->triggerEvent($event);
$this->response = $response;
return $this;
}
$response = $this->response;
$event->setResponse($response);
return $this->completeRequest($event);
}
/**
* Complete the request
Arguments
Closure($r): bool {#2 …4}
Laminas\Mvc\MvcEvent {#431}
} catch(Exception $e) {
//var_dump(debug_backtrace());
$gtgggg=[];
$gtgggg['err']=$e->getMessage();
$gtgggg['line']=$e->getLine();
$gtgggg['file']=$e->getFile();
$gtgggg['trace']=$e->getTrace();
$gtgggg['code']=$e->getCode();
d($gtgggg);
}
else:
Application::init(require 'config/' . PROJECT_ID_STRING . '/application.config.php')->run();
endif;