Для получения полного доступа
зарегистрируйтесь.

dignityinside    26   28 014


Видимо, пользователь решил о себе ничего не говорить.
  • php, mysql, oop, yii, zend framework, apache2, nginx, debian
  • Computer Science Expert: Software Development
  • Зарегистрирован 5 лет назад
Профиль завершён на 50 %
50 %

Проверяем установленую версию:

git --version
git version 1.7.12.4 (Apple Git-37)

Устанавливаем git с помощью brew:

brew install git

Добавляем в ~/.bash_profile новую строчку:

export PATH="/usr/local/bin:$PATH"

Применяем изменения:

source .bash_profile

Проверяем версию:

git --version
git version 2.11.1
Сниппет,  PHP

Layout

Установить другой шаблон:

$this->layout()->setTemplate('layout/new-layout');

Добавить новый шаблон для сайдбара:

$view = new ViewModel();
$sideView = new ViewModel();
$sideView->setTemplate('content/sidebar');
$this->$layout->addChild($sideView, 'side-view');
return $view;

Отключить шаблон:

$view = new ViewModel();
$view->setTerminal(true);
return $view;

Разные файлы шаблона для разных контролеров:

//module.php
public function init(ModuleManager $moduleManager){
    $sharedEvents = $moduleManager->getEventManager()->getSharedManager();
    $sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) {
        $controller = $e->getTarget();
        if ($controller instanceof Controller\FrontEndController) {
            $controller->layout('layout/front');
        }
    }, 100);
}

Получить доступ к объекту View в модули:

public function onBootstrap($e){
  $app = $e->getApplication();
  $viewModel = $app->getMvcEvent()->getViewModel();
}

Получить значение представления в Layout:

$viewModel = $this->viewModel()->getCurrent();
$children = $viewModel->getChildren();
$viewModel = $children[0];
$viewModel->foo;
Сниппет,  PHP

View Model

Переопределить шаблон для View:

$view = new ViewModel();
$view->setTemplate('my-template.phtml');

Передать переменные в представление:

$view = new ViewModel();
$view->setVariables(['var' => 'foo']);

Добавление нескольких объектов View Model и передача их в представления:

$view = new ViewModel();
$sidebarView = new ViewModel();
$sidebarView->setTemplate('content/sidebar');
$view->addChild($sidebarView, 'sidebar');
return $view;

Отключить представления (view):

$response = $this->getResponse();
$response->setStatusCode(200);
return $response;

Вернуть Json ответ (response):

$view = new JsonModel(['success' => '1','data'=>'foo']);
return $response;
namespace MyModule\Controller;
 
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
 
class MyController extends AbstractActionController
{

    public function indexAction()
    {
    	return new ViewModel(['id' => $id, 'form' => $form]);
        // или return ['id' => $id, 'form' => $form];
    }
 
}

// добавляем новое сообщение 
public function indexAction() {
    $this->flashMessenger()->addMessage('Message');
}

// передаём сообщение в представления (view) с помощью EventManager
$em = $e->getApplication()->getEventManager();

$em->attach(\Zend\Mvc\MvcEvent::EVENT_RENDER, function($e) {

    $messenger = new \Zend\Mvc\Controller\Plugin\FlashMessenger();
    
    if ($messenger->hasMessages()) {
        $messages = $messenger->getMessages();
        $e->getViewModel()->setVariable('flashMessages', $messages);
    }
    
});

// получаем все сообщение в представлении (view)
<?php if (isset($flashMessages)) : ?>
  <ul class="flash-messages">
       <?php foreach ($flashMessages as $message) : ?>
          <li> <?= $message; ?></li>
       <?php endforeach; ?>
  </ul>
 <?php endif; ?>
// создаем новый контейнер
$session = new Zend\Session\Container('user');

// сохраняем имя пользователя в сессию
$session->username = 'dignity';

// Получаем имя пользователя из сессии
$username = $session->username;

Перенаправление на определённый маршрут (route):

// page - маршрут (route)
// action - действие, на которое нужно сделать перенаправление
// param - параметр, например id
$this->redirect()->toRoute('page', ['action' => 'show'], ['param => 1']);

Перенаправление на опредёлённый контроллер и действия:

// controllerName - имя контроллера (controller)
// actionName - имя действия (action)
$this->forward()->dispatch('controllerName', ['action' => 'actionName']);

Перенаправление на опредёлённую ссылку:

$this->redirect()->toUrl('http://google.com');

Перенаправление на страницу 404:

$this->getResponse()->setStatusCode(404);
$this->getRequest();             // Объект запроса
$this->getResponse();            // Объект ответа
 
$this->getRequest()->getUri();     // URI
$this->getRequest()->getCookie();  // Cookies
$this->getRequest()->getServer();  // Переменные сервера
 
$this->params()->fromPost('foo');  // Запрос POST
$this->params()->fromQuery('foo'); // Запрос GET
$this->params()->fromRoute('foo'); // RouteMatch
$this->params()->fromHeader('foo');// Header
$this->params()->fromFiles('foo'); // Загруженные файл
 
$this->getRequest()->isXmlHttpRequest(); // Ajax запрос
$this->getRequest()->isPost(); // POST запрос

Функция сортировки массива в соответствии с его ключами.

function sort_string_float($a, $b) {

	$a = (float) $a;
	$b = (float) $b;

	if ($a == $b) {
		return 0;
	}

	return $a < $b ? -1 : 1;

}

// use
uksort($l1_data, 'self::sort_string_float');
Сниппет,  Bash

Удаляем Redis Cache

Не большой BASH скрипт, для удаления Redis кэша.

 redis-cli KEYS "username*" | while read key; do redis-cli DEL $key; echo $key; done

Проверяем, есть ли в массиве не пустые значения. Если мин. 1 не пустое, то...

$arr = ['', 'apple', ''];

if (array_filter($arr) !== []) {
    // do something
}

Находит вхождение подстроки в конце строки

function ends_with($haystack, $needle) {

	if ($needle === '') {
    	return true;
	}

	return strtolower(substr($haystack, -strlen($needle))) === $needle;

}

Находит вхождение подстроки в начале строки.

function starts_with($haystack, $needle) {
	return $needle === '' || stripos($haystack, $needle) === 0;
}

С помощью следующей команды можно легко и быстро узнать свой ip адрес на linux сервере.

ifconfig eth0 | grep inet | awk '{ print $2 }'