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

Резервирование WordPress сайта на Yandex диск

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

Плагин: XCloner - Site Backup and Restore

Настройка WebDAV для Yandex диска.

Site Backup/Remote Storage
Включаем WebDAV Storage
Вводим данные для аутентификации
WebDAV Base Url: https://webdav.yandex.ru
WebDAV Username: ваш логин Yandex
WebDAV Password: пароль
WebDAV Target Folder: Путь на яндекс диске для резервных копий, обязательно создать его ручками, и он должен быть примерно таким /site/backup/.

Создаем задание в Generate Backups, или попросту делаем выборочный бекап, важно:
Backups Options 3-тья строка выбор того как будем резервировать, только измененные или все данные там по календарю если вам нужны все данные оставляете это поле пустым.
Database Options - тут выбираете какие базы данных будете сохранять.
Files Options - а тут выбираете!!! что не надо помещать в архив бекапа.
В 4-той вкладке запускаем резервирование, и после успешного резервирования, можно сделать что либо с получившимся бекапом, залить на хранилище, или просто скачать.
В 5 той настраиваются задания для автоматических бекапов, там же выбирается автоматическая заливка на выбранное удаленное хранилище.

В общем то и все. Проверено работает. Английский не мешает.

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

AJAX Примитивы

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

1. index.php //точка входа
2. app.php //валидация передаваемых данных на сервере
3. scriptform.js //ajax запрос

Точка входа.

index.php




	
	myip


	
Email:

Телефон:

Имя:

Валидация передаваемых данных на сервере.

app.php


Ajax запрос.

scriptform.js

// with out callback
window.onload = function(){
	var inp_email = document.querySelector('input[name=email]');
	var inp_phone = document.querySelector('input[name=phone]');
	var inp_name = document.querySelector('input[name=name]');

	document.querySelector('#send').onclick = function() {
		var params ='email=' + inp_email.value + '&' + 
			'phone=' + inp_phone.value + '&' + 
			'name=' + inp_name.value;
		ajaxPOST('app.php', params); 
	}
}

// обращаемся к странице на сервере проводящей валидацию данных, и передаем параметры
function ajaxPOST(url, params){// 
	var request = new XMLHttpRequest();

	//проверка состояния запроса 0-4 (создан, открыт, отправлен, частичный ответ заголовки, пришел ответ)
	request.onreadystatechange = function(){
		if(request.readyState == 4 && request.status == 200){
			if(request.responseText == '1'){
				document.querySelector('#result').innerHTML = 'Ура-ура! Все хорошо!';//params
				// раз все хорошо прячем форму
				document.querySelector('form').style.display = 'none';
				//если надо отправить на другую страницу //document.location = '';
			}
			else{
				document.querySelector('#result').innerHTML = request.responseText;	
			}
			
		}
	}

	request.open('POST', url);
	request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	request.send(params);
}

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

NodeJS xmlhttprequest

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

Библиотека xmlhttprequest нужна для работы с XMLHttpRequest.

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;

function some_function2(url, callback) {
  var httpRequest;  // создаём наш XMLHttpRequest-объект 
  //if (window.XMLHttpRequest) { 
    httpRequest = new XMLHttpRequest();
  //} else if (window.ActiveXObject) { // для дурацкого Internet Explorer'а 
    // httpRequest = new // ActiveXObject("Microsoft.XMLHTTP"); 
  //} 
  httpRequest.onreadystatechange = function () { // встраиваем функцию проверки статуса нашего запроса 
    // это вызывается при каждом изменении статуса 
    if (httpRequest.readyState === 4 && httpRequest.status === 200) {
      //console.log(httpRequest.responseText);
      callback.call(httpRequest.responseText); // вызываем колбек 
    } 
  }; 
  httpRequest.open('GET', url); 
  httpRequest.send(); 
} 
var urlvar1 = 'https://www.google.ru/search?q=sdfgdsf&newwindow=1&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiYgqrzxdvSAhWMFCwKHQR1D2wQ_AUICigD&biw=1536&bih=696#newwindow=1&tbm=isch&q=dog&*'; 
// вызываем функцию 
some_function2(urlvar1, function () { 
  console.log(this);
  imagedata = this;
  var fs = require( 'fs' ); //подключаем библиотеку файловую систему
  fs.writeFile ('d:\\test.txt', imagedata, 'binary', function(err){
                                    if (err) throw err
                                    console.log('File saved.');
  });
});

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