Build Tools and Editors
Composer
https://getcomposer.org/doc/01-basic-usage.md
Wenn composer.json
vorhanden, dann installiere dependencies mit:
composer update
PHPloy
https://github.com/banago/PHPloy
phploy.bat -s dev -l
PHP-Intelephense
- Intelephense
- sublimelsp/LSP-intelephense: PHP support for Sublime's LSP plugin provided through intelephense.
- bmewburn/vscode-intelephense: PHP intellisense for Visual Studio Code
Sublime Text and VSCode
Turn off Intelephense-ls
and phpls
If custom classes are not being expanded or recognized, make sure to declare public variables:
class class1
{
public function function1()
{
}
}
class class2
{
/**
* Make it available via autocomplete
* @var myclass1;
*/
public $myclass1;
public function function2()
{
$this->myclass1 = new class1;
$this->myclass1->function1();
}
}
$myclass2 = new class2;
$myclass2->function2();
Intelephense go to definition not working for custom php framework : vscode
If not only class methods are being presented, but all php methods, turn builtin php autocomplete off.
You must disable the vscode built-in PHP Language Features.
- Click extensions.
- In the search bar type
@builtin php
. - Click cog icon of PHP Language Features.
- Click Disable.
https://stackoverflow.com/a/56879572/814031
PHPCS
https://benmatselby.dev/sublime-phpcs
Sublime Text
*.sublime-project
{
"folders":
[
{
"path": "E:\\WEB\\@docs"
},
{
"path": ".",
// hide in sidebar
"file_exclude_patterns": ["*.7z", "*.psd", "*.mvp", "*.zip", "*.flac","*.mp3","*.mp4"]
}
],
"settings":
{
"phpcs":
{
//"phpcs_additional_args":
//{
// "--standard": "/path/to/.composer/vendor/drupal/coder/coder_sniffer/Drupal"
//},
"phpcbf_additional_args":
{
"--standard": ".php_cs"
}
}
}
}
Grunt
Performance Booster:
Boilerplate
package.json
{
"name": "boilerplate",
"version": "0.0.0",
"description": "boilerplate",
"author": "Marcus Obst <info@marcus-obst.de>",
"private": true,
"devDependencies": {
// -- basic
"grunt": "^0.4.5",
"matchdep": "^0.3.0",
"grunt-contrib-watch": "^0.6.1",
"grunt-newer": "^1.1.1", // only load new stuff
"jit-grunt": "^0.9.1", // just in time
"time-grunt": "^1.2.1", // benchmark
// -- project
"grunt-contrib-clean": "^0.6.0", // empty directories
"grunt-contrib-cssmin": "^0.13.0", // minify css
"grunt-contrib-imagemin": "^0.9.2", // minify images
"grunt-contrib-jade": "^0.15.0", // jade templates
"grunt-contrib-less": "^1.0.0", // less css compiler
"grunt-cssbeautifier": "^0.1.2", // beautify css
"grunt-postcss": "^0.6.0", // css processor plugins like autoprefixer
"grunt-processhtml": "^0.3.8", // inlines stuff, rewrites paths
"grunt-stripmq": "0.0.6", // remove mediaqueries for ie
"grunt-uncss": "^0.4.3", // remove unused css
}
}
gruntfile.js
module.exports = function (grunt) {
require('time-grunt')(grunt);
// just in time grunt
require('jit-grunt')(grunt);
//require("matchdep").filterDev("grunt-*").forEach(grunt.loadNpmTasks);
// the task configurations
var BUILD_DIR = 'html/';
// -- Init
grunt.initConfig({
// ---- Vars
pkg: grunt.file.readJSON('package.json'),
template_path: "html/template/style",
// ---- Tasks
watch: {
options: {
spawn: false,
},
less: {
files:['<%= template_path %>/less/*.less'],
tasks:['newer:less:development','newer:postcss','cssmin','stripmq']
}
},
});
// -- Watch Event
grunt.event.on('watch', function(action, filepath, target) {
grunt.log.writeln(target + ': ' + filepath + ' has ' + action);
});
// -- Register Task
grunt.registerTask('default', []);
};
Webpack
PHP Build in server
Via "Senden an" Kontextmenü kann eine Datei mit dem PHP Build In Server geöffnet werden.
open-on-localhost.cmd
@echo off
set input=%1
set root=E:\WEB\
Echo.Input was - %input%
set converted=%input:E:\WEB\=http://localhost:8000/%
set converted=%converted:\=/%
echo.Converted to - %converted%
start php -S localhost:8000 -t "E:\WEB\"
start %converted%
FTPSync
E:\WEB>ftpsync.exe "content-ftpsync" /FTPSYNCDATA:"E:\folder-to-ftpsync-ini\ftpsync"
FileJuggler observes /blog/
incl. subfolders
Any of the following: Date modified - Newer than 1 Minute ago
Run command ftpsync.exe "content-ftpsync" /FTPSYNCDATA:"E:\WEB\folder-to-ftpsync-ini\ftpsync" /QUIET
To clean the directory from old logfiles add this to the INI file:
[Commands]
; Delete logfile older than 7 days
; https://ss64.com/nt/forfiles.html
AfterTransfer=forfiles /p "E:\WEB\folder-to-ftpsync-ini\ftpsync" /m "*.log" /d -7 /c "cmd /c del @file"