當前位置: 首頁>>代碼示例>>PHP>>正文


PHP DI\Service類代碼示例

本文整理匯總了PHP中Framework\DI\Service的典型用法代碼示例。如果您正苦於以下問題:PHP Service類的具體用法?PHP Service怎麽用?PHP Service使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Service類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: run

 public function run()
 {
     $request = Service::get('request');
     $router = Service::get('router')->getRoute();
     $controller = $router['controller'];
     $action = $router['action'];
 }
開發者ID:TimSoy,項目名稱:test,代碼行數:7,代碼來源:application.php

示例2: attemptToFindRoute

 public function attemptToFindRoute()
 {
     $request = Service::get('request');
     $uri = $request->getURI();
     if ($uri != '/') {
         rtrim($uri, '/');
     }
     $result = NULL;
     foreach ($this->routes as $route => $rContent) {
         $requirements = isset($rContent["_requirements"]) ? $rContent["_requirements"] : NULL;
         $pattern = preg_replace('~\\{\\w+\\}~', isset($requirements["id"]) ? '(' . $requirements["id"] . ')' : '([\\w\\d]+)', $rContent['pattern']);
         //����� �������� ���� ������� ��������� � requirements � ����������� ������������� (c)����
         if (preg_match(self::DLMTR . "^" . $pattern . "\$" . self::DLMTR, $uri, $match) && isset($requirements["_method"])) {
             if ($requirements["_method"] !== $request->getMethod()) {
                 continue;
             }
             $result = $this->routes[$route];
             $result['name'] = $route;
             if (!empty($match[1])) {
                 $result['variables'] = [$match[1]];
             }
             self::$currentRoute = $result;
             return $result;
         }
         if (preg_match(self::DLMTR . "^" . $pattern . "\$" . self::DLMTR, $uri, $match)) {
             $result = $this->routes[$route];
             $result['name'] = $route;
             if (!empty($match[1])) {
                 $result['variables'] = [$match[1]];
             }
             self::$currentRoute = $result;
             return $result;
         }
     }
 }
開發者ID:smackmybitchup,項目名稱:corelabs,代碼行數:35,代碼來源:Router.php

示例3: render

 /**
  * Render specified template file with data provided
  * @param $template_path Template file path (full)
  * @param array $data Data array
  * @param bool|true $wrap To be wrapped with main template if true
  * @return bool|html
  * @throws FileException if template file does not exist
  */
 public function render($template_path, $data = array(), $wrap = true)
 {
     //Launches the appropriate event
     Service::get('eventManager')->trigger('renderAction', "Render specified template file \"" . $template_path . "\" with data provided");
     $data['include'] = function ($controllerName, $actionName, $params) {
         Helper::dispatch($controllerName, $actionName, $params);
     };
     $data['getRoute'] = function ($route_name, $params = array()) {
         return Service::get('router')->buildRoute($route_name, $params);
     };
     $data['generateToken'] = function () {
         echo '<input type="hidden" name="token" value="' . Service::get('session')->get('token') . '"/>';
     };
     $data['route'] = Registry::getConfig('route');
     $data['user'] = Service::get('session')->get('user');
     if (!$wrap) {
         //Gets messages from session message container to display them in view
         $flush = Service::get('session')->get('messages') ? Service::get('session')->get('messages') : array();
         Service::get('session')->del('messages');
     }
     extract($data);
     //Checks if template file exists
     if (file_exists($template_path)) {
         ob_start();
         include $template_path;
         $content = ob_get_contents();
         ob_end_clean();
     } else {
         throw new FileException("File " . $template_path . " does not found");
     }
     if ($wrap) {
         $content = $this->renderMain($content);
     }
     return $content;
 }
開發者ID:IgorTokman,項目名稱:mindk_blog,代碼行數:43,代碼來源:Renderer.php

示例4: uploadImage

 public function uploadImage($image, $alt)
 {
     try {
         $file = new File($image, 10000);
         $uploadDir = ASSETS . 'uploads/portfolio/gallery/';
         $tmp = ASSETS . 'uploads/portfolio/tmp/';
         $file->setUploadDir($tmp);
         $fileSaver = new FileSaver($file);
         if (!$file->isNormalSize()) {
             throw new \Exception('Very big file size');
         }
         if (!$fileSaver->save()) {
             throw new \Exception('File not selected');
         }
         if (!ImageHelper::isImage($fileSaver->uploadedFile, ['gif', 'png', 'jpg', 'jpeg'])) {
             throw new \Exception('File is not image');
         }
         if (file_exists($uploadDir . $file->getName())) {
             $uniqName = FileHelper::getUniqFileName($uploadDir, FileHelper::getFileExtension($file->getName()));
             $file->setName($uniqName);
         }
         FileHelper::move($fileSaver->uploadedFile, $uploadDir . $file->getName());
         $db = Service::get('db');
         $query = 'INSERT INTO ' . self::getTable() . '(name, alt) VALUES (:name, :alt)';
         $stmt = $db->prepare($query);
         if (!$stmt->execute([':name' => $file->getName(), ':alt' => $alt])) {
             throw new \Exception('File not saved into DB');
         }
         Service::get('session')->setFlushMsg('success', 'File successfully downloaded');
     } catch (\Exception $e) {
         Service::get('session')->setFlushMsg('error', $e->getMessage());
         $response = new ResponseRedirect(Request::getHost() . '/admin');
         $response->send();
     }
 }
開發者ID:smackmybitchup,項目名稱:corelabs,代碼行數:35,代碼來源:AddImage.php

示例5: sendHeaders

 /**
  * 
  */
 public function sendHeaders()
 {
     header(Service::get('request')->get('protocol') . ' ' . $this->code . ' ' . self::$msgs[$this->code]);
     foreach ($this->headers as $key => $value) {
         header(sprintf("%s: %s", $key, $value));
     }
 }
開發者ID:denis-test,項目名稱:blog,代碼行數:10,代碼來源:Response.php

示例6: run

 public function run()
 {
     $route = $this->router->parseRoute();
     try {
         if (!empty($route)) {
             if (empty($route['security']) || in_array(Service::get('security')->getUserRole(), @$route['security'])) {
                 $controllerReflection = new \ReflectionClass($route['controller']);
                 $action = $route['action'] . 'Action';
                 if ($controllerReflection->hasMethod($action)) {
                     $controller = $controllerReflection->newInstance();
                     $actionReflection = $controllerReflection->getMethod($action);
                     $response = $actionReflection->invokeArgs($controller, $route['params']);
                     // sending
                     $response->send();
                 }
             } else {
                 throw new AuthRequredException('Login required');
             }
         } else {
             throw new HttpNotFoundException('Route not found!');
         }
     } catch (HttpNotFoundException $e) {
         // Render 404 or just show msg
         echo $e->getMessage();
     } catch (AuthRequredException $e) {
         echo $e->getMessage();
     } catch (\Exception $e) {
         // Do 500 layout...
         echo $e->getMessage();
     }
 }
開發者ID:IgorShumeikoMindk,項目名稱:mindk,代碼行數:31,代碼來源:Application.php

示例7: render

 /**
  * Rendering method
  *
  * @param   string  Layout file name
  * @param   mixed   Data
  *
  * @return  Response
  */
 public function render($layout, $data = array())
 {
     $fullpath = realpath($this->getViewPath() . $layout . '.php');
     $renderer = new Renderer(Service::get('config')['main_layout']);
     $content = $renderer->render($fullpath, $data);
     return new Response($content);
 }
開發者ID:IgorShumeikoMindk,項目名稱:mindk,代碼行數:15,代碼來源:Controller.php

示例8: render

 /**
  * Include HTML layout file and extract data.
  *
  * @return string
  */
 public function render()
 {
     $user = Service::get('session')->get('authenticated');
     $route = Service::get('router')->find();
     $getRoute = function ($route_name, $params = null) {
         $router = Service::get('router');
         return $router->generateRoute($route_name, $params);
     };
     $include = function ($class_name, $action, $params) {
         $response = Service::get('app')->runControllerAction($class_name, $action, $params);
         if (is_object($response)) {
             $response->send();
         }
     };
     $generateToken = function () {
         $token = Service::get('security')->generateToken();
         echo '<input type="hidden" name="token" value="' . $token . '">';
     };
     $data['getRoute'] = $getRoute;
     $data['generateToken'] = $generateToken;
     $data['include'] = $include;
     $data['user'] = $user;
     $data['route'] = $route;
     ob_start();
     extract($this->_data);
     extract($data);
     include $this->_layout;
     $result = ob_get_clean();
     return $result;
 }
開發者ID:benms,項目名稱:MK_Framework,代碼行數:35,代碼來源:Renderer.php

示例9: run

 public function run()
 {
     $router = Service::get('router');
     $route = $router->parseRoute($_SERVER['REQUEST_URI']);
     try {
         //Checks if route is empty
         if (!empty($route)) {
             //Verifies user role if it needs
             if (array_key_exists('security', $route)) {
                 if (is_null($user = Service::get('session')->get('user')) || !in_array($user->role, $route['security'])) {
                     throw new SecurityException("Access is denied");
                 }
             }
             //Returns Response object
             $response = Helper::dispatch($route['controller'], $route['action'], $route['params']);
         } else {
             throw new HttpNotFoundException("Route does not found", 404);
         }
     } catch (SecurityException $e) {
         Service::get('session')->set('returnUrl', Registry::getConfig('route')['pattern']);
         $response = new ResponseRedirect(Service::get('router')->buildRoute('login'));
     } catch (HttpNotFoundException $e) {
         $response = new Response(Service::get('renderer')->render(Registry::getConfig('error_400'), array('code' => $e->getCode(), 'message' => $e->getMessage())));
     } catch (\Exception $e) {
         $response = new Response(Service::get('renderer')->render(Registry::getConfig('error_500'), array('code' => $e->getCode(), 'message' => $e->getMessage())));
     }
     $response->send();
 }
開發者ID:IgorTokman,項目名稱:mindk_blog,代碼行數:28,代碼來源:Application.php

示例10: __construct

 /**
  * Response constructor.
  * @param string $content контент, который вернется в ответе на запрос
  * @param string $response_code HTTP код ответа, 200 по умолчанию
  * @param string $content_type HTTP тип коннтенат ответа, по умолчанию - text/html
  */
 public function __construct($content, $response_code = ResponseType::OK, $content_type = "text/html")
 {
     $this->content = $content;
     $this->response_code = $response_code;
     $this->content_type = $content_type;
     self::$logger = Service::get("logger");
 }
開發者ID:Artiomtb,項目名稱:MindKBlog,代碼行數:13,代碼來源:Response.php

示例11: __construct

 /**
  * Class instance constructor
  *
  * @param $main_layout
  */
 public function __construct($main_layout)
 {
     $this->main_layout = $main_layout;
     $this->helpers = array('include' => function ($controller, $action, $params) {
         $controllerReflection = new \ReflectionClass($controller);
         $action = $action . 'Action';
         if ($controllerReflection->hasMethod($action)) {
             $controller = $controllerReflection->newInstance();
             $actionReflection = $controllerReflection->getMethod($action);
             $response = $actionReflection->invokeArgs($controller, $params);
             $response->sendBody();
         }
     }, 'generateToken' => function () {
         $token = Service::get('security')->getToken();
         echo '<input type="hidden" name="token" value="' . $token . '" />';
     }, 'getRoute' => function ($route, $params = array()) {
         return Service::get('router')->getRoute($route, $params);
     });
     if (Service::get('security')->isAuthenticated()) {
         $this->data['user'] = Service::get('session')->user;
     } else {
         $this->data['user'] = null;
     }
     $this->data['flush'] = Service::get('session')->getFlush();
 }
開發者ID:denis-test,項目名稱:blog,代碼行數:30,代碼來源:Renderer.php

示例12: solveException

 /**
  * @throws ServiceException
  *
  * solve exception depending from enter message (number or string)
  * if message is numeric get code from Response class and redirect to 500 html page
  * if string redirect to $redirectAddress
  */
 public function solveException()
 {
     $data = array();
     if ($this->getMessage() && is_numeric($this->getMessage())) {
         $data['code'] = $this->getMessage();
         $data['message'] = Response::getMessageByCode($this->getMessage());
         if ($this->beforeSolve) {
             $this->beforeSolveException();
         }
         $renderer = new Renderer();
         $responce = new Response($renderer::render(Service::get('config')->get500Layout(), $data), 'text/html', 202);
         $responce->send();
     } else {
         if ($this->getMessage()) {
             Service::get('session')->addFlush($this->type, $this->getMessage());
             if ($this->beforeSolve) {
                 $this->beforeSolveException();
             }
             echo $this->redirectAddress;
             $redirect = new ResponseRedirect($this->redirectAddress);
             $redirect->sendHeaders();
         } else {
             throw new ServiceException(500);
         }
     }
 }
開發者ID:VinokurYurii,項目名稱:Homework,代碼行數:33,代碼來源:MainException.php

示例13: execute

 /**
  * Divide uri and call the appropriate controllers, methods and params.
  *
  * @param string $uri Uri.
  *
  * @return array An array which contains the required controllers, methods and params.
  * @throws \Framework\Exception\DIException
  */
 public function execute($uri = null)
 {
     if ($uri === null) {
         $uri = Service::get('request')->getUri();
     }
     $uri = '/' . trim(trim($uri), '/');
     foreach ($this->routes as $name => $route) {
         $pattern = str_replace(array('{', '}'), array('(?P<', '>)'), $route['pattern']);
         if (array_key_exists('_requirements', $route)) {
             if (array_key_exists('_method', $route['_requirements']) && $route['_requirements']['_method'] != Service::get('request')->getMethod()) {
                 continue;
             }
             if (0 !== count($route['_requirements'])) {
                 $search = $replace = array();
                 foreach ($route['_requirements'] as $key => $value) {
                     $search[] = '<' . $key . '>';
                     $replace[] = '<' . $key . '>' . $value;
                 }
                 $pattern = str_replace($search, $replace, $pattern);
             }
         }
         if (!preg_match('&^' . $pattern . '$&', $uri, $params)) {
             continue;
         }
         $params = array_merge(array('controller' => $route['controller'], 'action' => $route['action']), $params);
         foreach ($params as $key => $value) {
             if (is_int($key)) {
                 unset($params[$key]);
             }
         }
         $this->currentRoute = array_merge($route, array('_name' => $name));
         return $params;
     }
 }
開發者ID:cheebam,項目名稱:blog,代碼行數:42,代碼來源:Router.php

示例14: updateAction

 public function updateAction()
 {
     $errors = array();
     $msgs = array();
     $user_id = Service::get('Session')->user->id;
     if (isset(Service::get('Session')->profile)) {
         $profile = Service::get('Session')->profile;
     } else {
         $profile = Profile::getProfile($user_id);
     }
     if (!$profile) {
         $profile = new Profile();
         $profile->user_id = $user_id;
     }
     if ($this->getRequest()->isPost()) {
         try {
             $profile->name = $this->getRequest()->post('name');
             $profile->second_name = $this->getRequest()->post('second_name');
             $profile->info = $this->getRequest()->post('info');
             $validator = new Validator($profile);
             if ($validator->isValid()) {
                 $profile->save();
                 return $this->redirect($this->generateRoute('home'), 'The data has been saved successfully');
             } else {
                 $errors = $validator->getErrors();
             }
         } catch (DatabaseException $e) {
             $msgs = $e->getMessage();
         }
     }
     return $this->render('profile.html', array('errors' => $errors, 'msgs' => $msgs, 'profile' => $profile));
 }
開發者ID:denis-test,項目名稱:blog,代碼行數:32,代碼來源:ProfileController.php

示例15: render

 /**
  * Create page
  *
  * @param $path_to_layout
  * @param $content
  * @return string
  */
 public function render($path_to_layout, $content)
 {
     $include = function ($controller, $action, $params = array()) {
         $app = Service::get('app');
         $app->generateResponseCtrl($controller, $action, $params);
     };
     $user = Service::get('session')->get('user');
     //массив
     $router = Service::get('route');
     $getRoute = function ($rout) use(&$router) {
         return $router->buildRoute($rout);
     };
     $generateToken = function () {
         $csrf = Service::get('csrf');
         $token = $csrf->generateToken();
         echo '<input type="hidden" name="token" value="' . $token . '" />';
     };
     ob_start();
     if (is_array($content)) {
         extract($content);
     }
     include $path_to_layout;
     //костыль на отобжажение ссылки на редактирование поста, чтобы не менять стандартную вьюху show.html
     if (!empty($content['post']->id) && Service::get('security')->isAuthenticated() && empty($content['show'])) {
         echo '<br/><a href="/posts/' . $content['post']->id . '/edit"> Edit post</a>';
         echo '<br/><a href="/posts/' . $content['post']->id . '/delete"> Delete post</a>';
     }
     return ob_get_clean();
 }
開發者ID:Alexandr93,項目名稱:blog,代碼行數:36,代碼來源:Renderer.php


注:本文中的Framework\DI\Service類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。