Vue.js Примитивы

Редакция автор: stain

Официальный сайт vue.js
Видео уроки по основам vue.js

Простое определение типа элемента DOM идентификатор, класс, тег el: "#app" или ".app" или "body".
Условия v-if, v-else, v-elseif.
Вспомогательный v-show, показывает или прячет элемент в зависимости от состояния булевого триггера. !,<,>,=== - неравно,меньше, больше, равно. &&,|| - and, or.
Пример: <p v-if="color === 'red'">Что-то </p>
<img v-bind:src="/vue-js-primitivy/"> , здесь image - ссылка на картинку в данных скрипта.
Также можно привязывать к таким атрибутам как class, href, alt, title, style, disabled, и полагаю прочим.

Циклы v-for.

Тоже но для перебора с ключами.

События

<button @click="outdatel.quantity -= 1">-</button> <button v-on@click="outdatel.quantity -= 1">-</button> The v-on directive is used to allow elements to listen for events The shorthand for v-on is @ The v-on directive can trigger a method Triggered methods can take in arguments this refers to the current Vue instance’s data as well as other methods declared inside the instance.

Функции

Комментариев: 0

PHP Пространство имен и автозагрузка классов

Редакция автор: stain

Интересно что namespace обязательно должен присутствовать в файле класса, а доступ к нему производится или установкой пространства имен или указанием полного имени класса или имени класса относительно установленного пространства имен.

Автозагрузка и зависимое от иерархии каталогов пространство имен. Классы, предполагается располагать по стандарту PSR-4.

Ниже загрузчик, код не мой, но я проверял он вполне рабочий. Нужно только загрузить сам загрузчик, выше него естественно указать желаемое пространство имен, и дальше уже работать непосредственно с классами и их функциями.

Загрузчик AutoPSR-4.php


Пример обращения к функциям классов в файле index.php

test();
Z\Zed::test(); //расположен в models\Z\Zed.php
\controllers\Xclass::test(); // расположен вне текущего пространства имен в controllers\Xclass.php

Пример класса controllers\Xclass.php

класс Xclass';
    }
}

Вариант загрузчика в котором расположение файлов не имеет столь жесткой привязки.

В этом случае проверяются все указанные каталоги, загружаются все файлы, и если класс есть и у него прописано пространство имен, то к нему можно обратиться и он найдется, но такой способ требует уникальные имена даже для похожих функций, и будет сложнее разобраться в структуре проекта.


Автозагрузчик composer`a.

Подключение через композер, предполагает запихивание всего апликейшена в папку, связывание с именем проекта, а следовательно все неймспейсы преобрели дополнительный прификс \Проект, и стал выглядеть подобным образом \Проект\сабнеймспейс\класс, т.е. нужно для нормального функционирования, переименовывать во всех файлах проекта пространство имен, внедряя имя проекта, но чтобы не менять в глубинах кода используемые классы, можно добавить указатель на пространство имен use.

Теперь в начале каждого класса пишем используемое пространство имён. У основных классов это:


А у контроллеров:



Обязательно следует добавить в файл проекта composer.json, связку имени вашего проекта с каталогом где вы его держите.

"autoload": {
        "psr-4": {
            "YourGitHubName\\NameProject\\": "public_html/"
        }
}

После этого нужно выполнить команду php composer.phar update, чтобы подключились пути автозагрузчика.

Тутто, тут, тут и тут можно подчерпнуть дополнительную информацию.

Комментариев: 0

PHP авто комментарии и документация

Редакция автор: stain

Расширение neilbrayfield.php-docblocker для VS Code подготавливает комментарии для классов, функций и методов, согласно их параметрам. Для того чтобы сформировать автокомментарий, наберите /**, и нажмите ввод.

Для подготовки автодокументации используется phpdocumentor
Скачиваем www.phpdoc.org/phpDocumentor.phar
1.Установка глобально, я кинул в каталог с php, создал там же phpDoc.cmd.

@set PHP_BIN=php.exe @set PHP_DIR=D:\web\tools\php\php-7.1-x64\
@"%PHP_BIN%" -d output_buffering=0 "%PHP_DIR%phpDocumentor.phar" %* 

Проверил phpdoc --version.

2.А теперь, находясь в директории проекта, который вы покрыли докблоками, просто запустите из консоли: phpdoc -d . -t ./src, -d/f указываем на директорий или файл по которому будет строиться хелп, -t указываем на каталог куда положим готовую документацию.

P.S.: Через композер, не получилось, зависимости не хотели разрешаться composer global require —dev "phpdocumentor/phpdocumentor:2.*".

После того как набрел на плагин в vscode, заметил еще статью по автодокументации.
Комментирование кода и генерация документации в PHP

Комментариев: 0

Подключение линтеров в VS Code

Редакция автор: stain

Выбираете в папке php конфиг для разработки и копируете его с именем php.ini.
Настройка конфигурации свежескаченого php. Например:

include_path = ".;d:/web/php/PHP-7.2-x64;d:/web/php/PHP-7.2-x64/PEAR/pear"
extension_dir = "D:/web/tools/php/php-7.2-x64/ext"
extension=openssl

Путь до php добавить в path windows.Например:
D:\web\tools\php\php-7.2-x64

Расположение глобальных пакетов. C:/Users/%USERNAME%/AppData/Roaming/Composer

Путь до батников расширений линтеров добавить в path windows.
C:\Users\%USERNAME%\AppData\Roaming\Composer\vendor\bin

Установка линтеров глобально.
Для ikappas.phpcs php composer.phar global require "squizlabs/php_codesniffer=*"
Для cerzat43.twigcs php composer.phar global require allocine/twigcs

Скачать php composer

Комментариев: 0

Виртуальные хосты на apache2 под Ubuntu 16.04lts

Редакция автор: stain

Ubuntu 16.04 Lts +Apache2 +Несколько доменов на одном IP + сайты в каталоге пользователя

Добавить в /etc/apache2/apache2.conf после других аналогичных записей:
sudo nano /etc/apache2/apache2.conf


  AllowOverride All
  Require all granted
 

Добавить в самом низу файла /etc/apache2/apache2.conf

ServerName localhost

Меняем очередность файлов индекса, переставляем index.php в начало списка в файле /etc/apache2/mods-available/dir.conf.
sudo nano /etc/apache2/mods-available/dir.conf


  DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm 
 

===Цикл===

//Добавляем виртуальные хосты
sudo nano /etc/hosts

127.0.0.1 localhost вашсайт

//Копируем базовый конфиг /etc/apache2/sites-available/000-default.conf
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/вашсайт.conf

//Правим /etc/apache2/sites-available/вашсайт.conf
sudo nano /etc/apache2/sites-available/вашсайт.conf

ServerName ВашСайт 
DocumentRoot /home/YourUserName/public_html/вашсайт 

//Включаем сайт в apache2
sudo a2ensite вашсайт

//Перезапускаем apache2
sudo service apache2 reload
===/Цикл===

Права на каталог ~/public_html
sudo adduser USERNAME www-data
sudo chown USERNAME:www-data -R ~/public_html
chmod -R 775 ~/public_html
Мы добавили себя в группу www-data (поскольку от пользователя www-data группы www-data работает Apache) Сделали группу www-data группой владельца корневой папки наших сайтов. Присвоили для этой папки права чтения и записи для владельца и его группы. Это нужно для того, чтобы пользователи YourUserName (от имени которого мы заливаем файлы на сервер) и пользователя www-data (от имени которого работает веб-сервер) имели одинаковые права.

При добавлении каждого сайта над его папкой нужно будет производить эту процедуру (кроме первой команды; только не ко всей public_html, а лишь к папке нового сайта). Также нужно это делать для новых файлов, требующих изменения со стороны сервера.

===частьЦикла===

sudo chown USERNAME:www-data -R ~/public_html/вашсайт
chmod -R 775 ~/public_html/вашсайт
===/частьЦикла===

!!!Чтобы получить доступ с другого компьютера, на удаленном компьютере прописываем в файл C:\Windows\System32\drivers\etc\hosts IP-adress-servera вашсайт

P.S: При привязке git, а вернее во время передачи данных, происходит запрос в каталог ~/.config , по умолчанию у него права root (хотя может быть я что то лишнее запустил в режиме sudo) решение:
Идем на сервер через ssh в папку в домашний директорий пользователя ~/
Смотрим права:
sudo ls -la
Меняем владельца если нужно:
sudo chown USERNAME:www-data -R ~/.config

Скрипт цикла создания виртуального хоста

Скрипт создает виртуальный хост/каталог/запись в файле hosts/конфигурационный файл, изменяет в конфигурационном файле параметр ServerName и DocumentRoot перезапускает apache.
Пример запуска sudo bash createhost.sh sitename username

#!/bin/bash
#sudo bash snc.sh site user
if [ -z $1 ] ; then
echo «Do not set your domain name.»
exit 1 ; fi
if [ -z $2 ] ; then
username='im'
echo «Do not set your user name.» ; fi

mkdir -p /home/$username/public_html/$1/public_html
echo "127.0.0.1 "$1 | sudo tee -a /etc/hosts

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/$1.tmp.conf

sed -e "s!\#ServerName www.example.com!ServerName ${1}!; s!DocumentRoot /var/www/html!DocumentRoot /home/${username}/public_html/${1}/public_html!" /etc/apache2/sites-available/$1.tmp.conf > /etc/apache2/sites-available/$1.conf
rm /etc/apache2/sites-available/$1.tmp.conf

a2ensite $1
chown $username:www-data -R /home/$username/public_html/$1
chmod -R 775 /home/$username/public_html/$1

Источник из 2014

Комментариев: 0

Фреймворк php на хостинге

Редакция автор: stain

Установка фреймворков php на хостинг, в уже существующую папку сайта, на уровень ниже папки public_html, требует вместо указания имени_проекта - папки_проекта указывать точку - текущий_каталог. И в последствии скопировать содержимое каталога public или web или какой то еще заданный по дефолту, в public_html. Еще возможно понадобится исправить в файле проекта ссылки на верный каталог с вебприложением - сайтом. Предполагается что вы это все будете делать из консоли на сервере или удаленно по ssh.

composer create-project laravel/laravel . --prefer-dist
composer create-project symfony/framework-standard-edition .
composer create-project slim/slim-skeleton .

Комментариев: 0