Loading...
 

History: PhpStorm

Comparing version 127 with version 213

Lines: 1-3Lines: 1-3
-[http://www.jetbrains.com/phpstorm/|PhpStorm] is JetBrains' integrated development environment for PHP, based on IntelliJ IDEA. As of 2017, PhpStorm is considered the best commercial PHP IDE. JetBrains offers PhpStorm for free for Tiki development. +[http://www.jetbrains.com/phpstorm/|PhpStorm] is JetBrains' integrated development environment for PHP, based on IntelliJ IDEA. As of 2019, PhpStorm may be the best commercial PHP IDE. JetBrains offers PhpStorm for free for Tiki development.
 {maketoc} {maketoc}
Lines: 6-36Lines: 6-60
 !!#Interesting features !!#Interesting features
 In no particular order (yet) by {sign user="jonnybradley" datetime="2013-04-15T15:54:54+00:00"} In no particular order (yet) by {sign user="jonnybradley" datetime="2013-04-15T15:54:54+00:00"}
-# Navigate -> File... (and Class... and Symbol...) %%% Especially the way you can type the initials of the words in the filename %%% e.g. "t a t o o" gets you tiki-admin_toolbars (the php, tpl and js files if you want)

# Edit -> Copy Reference %%% Except the way it includes the leading slash... must looks for a pref for that


# {img attId="191" max=300} %%% makes me smile, but seriously, the debugger knows what's going on to a far deeper level than any other PHP IDE i've tried
+# Navigate -> File... (and Class... and Symbol...)

##
Especially the way you can type the initials of the words in the filename %%% e.g. "t a t o o" gets you tiki-admin_toolbars (the PHP, tpl and js files if you want


## Also, if you specify the line number it takes you straight to it, as in -+tiki-jquery.js:288+- or even more amazingly -+tiki-jquery.js on line 288

-

# Edit -> Copy Reference %%% Except for the way it includes the leading slash... must look for a pref

that!
# {img attId="191" max=300} %%% makes me smile, but seriously, the debugger knows what's going on to a far deeper level than any other PHP IDE I've tried
 # Code -> Refactor as... (variable, method etc) %%% Common on Java IDE, but not seen it on PHP # Code -> Refactor as... (variable, method etc) %%% Common on Java IDE, but not seen it on PHP
-# Code -> Comment/Un-comment %%% Sounds trivial but it's the first thing i've found that does it correctly in all languages, not just PHP and JS, but Smarty, HTML and CSS too

# View -> Compare with clipboard (you can merge changes form the clip board into an open file)
+# Code -> Comment/Un-comment %%% Sounds trivial but it's the first thing I've found that does it correctly in all languages, not just PHP and JS, but Smarty, HTML, and CSS too. Chealer 2018-02-07: [https://youtrack.jetbrains.com/issue/WI-40620|Not reliable for me]

# View -> Compare with the clipboard (you can merge changes from the clipboard into an open file


# Advanced debugging (breakpoint activation when another breakpoint is hit, expression evaluation on hover, etc
)
 # CSS colour indicators # CSS colour indicators
 # Column select # Column select
 # Tools -> Deployments -> Sync and Diff with Deployment # Tools -> Deployments -> Sync and Diff with Deployment
 # Code completion on SQL files (fills in tables and column names from your database - thanks Luci ;) # Code completion on SQL files (fills in tables and column names from your database - thanks Luci ;)
-# Branch merging - as you would expect, far more civilised (and quick) than any other IDE i've tried, and so much more controllable (for me) than using a shell +# Branch merging - as you would expect, far more civilized (and quick) than any other IDE I've tried, and so much more controllable (for me) than using a shell
 # Shelve changes which reverts your current changes and keeps them in a safe(ish) place until you want them back again # Shelve changes which reverts your current changes and keeps them in a safe(ish) place until you want them back again
 +# Git: "Show History for Selection" (rather than annotating a full file)
 # Live templates: create your own idiosyncratic code snippets and insert them by typing an abbreviated name followed by TAB # Live templates: create your own idiosyncratic code snippets and insert them by typing an abbreviated name followed by TAB
 # You can get a free version for use on your Tiki work (see details below) # You can get a free version for use on your Tiki work (see details below)
 !!# Disadvantages compared to Eclipse PDT !!# Disadvantages compared to Eclipse PDT
-# The SFTP plugin (''Remote Host'') is in development. Specifically, as of version
.1 (PhpStorm 7.1.5), at least on Windows, direct drag-and-drop from/to Windows Explorer is not supported, unlike Eclipse's Remote System Explorer.
+# The SFTP plugin (''Remote Host'') is in development. Specifically, as of version
.1 (PhpStorm 7.1.5), at least on Windows, direct drag-and-drop from/to Windows Explorer is not supported, unlike Eclipse's Remote System Explorer. Remote files cannot be downloaded.
 # The history of commit messages cannot be shared between projects (for example, when backporting a change). # The history of commit messages cannot be shared between projects (for example, when backporting a change).
 !# Issues !# Issues
-#"Find Usages..." does not necessarily provide an exhaustive list. For example, a method will not show its usages from Smarty templates if the object on which the method is called is assigned from PHP. +#"Find Usages" does not necessarily provide an exhaustive list. For example:

##
A method will not show its usages through objects whose type PhpStorm fails to infer


## A
method will not show its usages from Smarty templates if the object on which the method is called is assigned from

.
## [https://youtrack.jetbrains.com/issue/WI-38235|Calls to methods through callbacks specified with a simple string are

].
## Using "Find Usages" on a global variable in a function will only find usages in that function (see [https://youtrack.jetbrains.com/issue/WI-18065|WI-

]).
# [https://youtrack.jetbrains.com/issue/IDEA-173887|"Find in Path" forgets the scope

switching between projects]
# Find in Path can be unwarrantedly sluggish (see [https://youtrack.jetbrains
.com/issue/IDEA-157017|IDEA-157017])
 #Tiki's default Smarty cache behavior is to compile only if a template file's timestamp is newer than the timestamp recorded on the latest compilation. Using PhpStorm's Revert action from Local history sets the reverted file's timestamp to the time the original version was created, rather than the time the reversion was performed. As of PhpStorm 2017.2.1, there is apparently no setting to control that behavior. This means Local history reverts performed by PhpStorm will not be reflected in Tiki until template cache is cleared, by default. To deal with this, either perform a dummy modification of all reverted files (for example, add a space and then remove it) or set Smarty to recompile always and accept a performance hit for every request. #Tiki's default Smarty cache behavior is to compile only if a template file's timestamp is newer than the timestamp recorded on the latest compilation. Using PhpStorm's Revert action from Local history sets the reverted file's timestamp to the time the original version was created, rather than the time the reversion was performed. As of PhpStorm 2017.2.1, there is apparently no setting to control that behavior. This means Local history reverts performed by PhpStorm will not be reflected in Tiki until template cache is cleared, by default. To deal with this, either perform a dummy modification of all reverted files (for example, add a space and then remove it) or set Smarty to recompile always and accept a performance hit for every request.
 # PHP's extract() function is problematic. Reads of the variables extracted are reported as errors. Moreover, [https://youtrack.jetbrains.com/issue/WI-1392|the debugger does not show these variables in the Variables zone] due to [https://bugs.xdebug.org/view.php?id=546|Xdebug bug #546]. # PHP's extract() function is problematic. Reads of the variables extracted are reported as errors. Moreover, [https://youtrack.jetbrains.com/issue/WI-1392|the debugger does not show these variables in the Variables zone] due to [https://bugs.xdebug.org/view.php?id=546|Xdebug bug #546].
 +# Similarly, [https://youtrack.jetbrains.com/issue/WI-38342|importing Global variables in function scope using composed variable name/variable variables will fail to add them to the Debug tool window], and accesses will be erroneously displayed as errors.
 +# [https://youtrack.jetbrains.com/issue/WI-34847|The debugger's console can display bogus error messages].
 +# [https://youtrack.jetbrains.com/issue/IDEA-135346|In the editor's vertical scrollbar, the thumb's position, and size are broken], which makes it confusing to try navigating issues.
 +# [https://youtrack.jetbrains.com/issue/WI-40620|"Comment with Block Comment" does not behave properly on function with PHPDoc comments]
 # The inspection for unused variables generates numerous false positives due to several scenarios, notably [https://youtrack.jetbrains.com/issue/WI-6151|file inclusions] and [https://youtrack.jetbrains.com/issue/WI-3737|variable variables]. # The inspection for unused variables generates numerous false positives due to several scenarios, notably [https://youtrack.jetbrains.com/issue/WI-6151|file inclusions] and [https://youtrack.jetbrains.com/issue/WI-3737|variable variables].
-# [https://youtrack.jetbrains.com/issue/IDEA-122622|The "VCS Operations Pop-up" keyboard shortcut has no effect with certain layouts] +# [https://youtrack.jetbrains.com/issue/WI-42052|Move Caret to Code Block end/start in a PHP file can bring to the wrong location]

# With certain layouts (including French Canadian), some keyboard shortcuts have no effect, such as
[https://youtrack.jetbrains.com/issue/IDEA-122622|"VCS Operations Pop-up"] and [https://youtrack.jetbrains.com/issue/WI-3493|Move to code block end/start]


# Annotating several files (such as tikilib.php on branch 15.x) results in an error being displayed at the top ("Number of lines annotated by Subversion is not equal to the number of lines in the file. Check file encoding and line separators."). With "Display anyway", some of the lines show correct annotations, but some lines lack annotations in some cases. Not clear if missing annotations are due to this bug or to excessively long histories. Affects Chealer with PhpStorm 2017.3.2
 # Controlling indentation can be problematic in Smarty templates, as described in [https://youtrack.jetbrains.com/issue/WI-37875|this ticket]. # Controlling indentation can be problematic in Smarty templates, as described in [https://youtrack.jetbrains.com/issue/WI-37875|this ticket].
 +# "Merge From..." appears broken with branches in 2017.2.1 if one directly selects the branch (another menu opens prompting to select a file in 17.x, for example). Instead, selecting "branches..." and only then 17.x works.
 +# When merging, [https://youtrack.jetbrains.com/issue/WI-28563|non-conflicting changes are not applied automatically].
 +# Annotations are very intelligent, blaming the initial commit when the last change is from a merge, but perhaps too confident. The initial commit displayed can apparently be wrong if a merge encompassed several commits on the same file (PhpStorm 2017.3.2).
 +# By default, [https://youtrack.jetbrains.com/issue/WI-39629|a tab is quietly closed when opening a new tab with already 10 tabs open].
 And many more... And many more...
 +Wishes
 +# Debug - [https://youtrack.jetbrains.com/issue/WI-7993|Please add Variable/Expression Change Breakpoints]
 +# Debug - [https://youtrack.jetbrains.com/issue/WI-39745|Break when back to selected frame]
 +# Debug - [https://youtrack.jetbrains.com/issue/WI-46061|Smarty template debugging]
 !# Setting it up !# Setting it up
 {REMARKSBOX(type="warning" title="In progress")} {REMARKSBOX(type="warning" title="In progress")}
Lines: 39-52Lines: 63-76
 !!# Installation !!# Installation
 !!!# For Tiki work only !!!# For Tiki work only
-If you are a regular contributor to the TikiWiki project, then you may be eligible for a free license to PhpStorm. +If you are a regular contributor to the TikiWiki project, then you may be eligible for a free license to PhpStorm kindly provided by [https://www.jetbrains.com/|JetBrains].
-*Contact Nelson (nkoth on IRC) and ask him for the user name and license key.

*Once you receive the mail, log in to Jetbrains.
+*Contact [https://tiki.org/JonnyBradley|Jonny] (jonnyb on IRC) and ask him for a new license key.

*Once you receive the mail, log in to JetBrains.
 *Download PhpStorm from https://account.jetbrains.com/licenses *Download PhpStorm from https://account.jetbrains.com/licenses
 * Start PhpStorm * Start PhpStorm
 *With PhpStorm 2017, you will get prompted on the first launch and can just enter your JetBrains account credentials. If not, keep reading this section... *With PhpStorm 2017, you will get prompted on the first launch and can just enter your JetBrains account credentials. If not, keep reading this section...
 * Help > Register * Help > Register
-* Enter the user name and license key exactly as in the email

{REMARKSBOX(type=warning title=Don't enter the key as a single line!)}
+* Enter the username and license key exactly as in the email

{REMARKSBOX(type=warning title="Don't enter the key as a single line!")}
 The license key you will have received, may be on several lines. The license key you will have received, may be on several lines.
Lines: 57-66Lines: 81-149
 Get PhpStorm from http://www.jetbrains.com/phpstorm/ Get PhpStorm from http://www.jetbrains.com/phpstorm/
-!!# Import Tiki Code Style Settings
Download [tiki-download_wiki_attachment.php?attId=209&page=PhpStorm&download=y|this XML file] for PhpStorm 2017, or another file from [#attzone|here] for previous versions.
+!!# Tiki Code Style Settings

{TABS(name="code_style_config"
tabs="Tiki 21 +|phpStorm 2018+|phpStorm 2017-")


Your IDE should now detect coding style automatically through the
.editorconfig


.

[https://sourceforge.net/p/tikiwiki/code/HEAD/tree/trunk/doc/devtools/TikiCodeStyleSettingsPhpStorm.xml
|/doc/devtools/TikiCodeStyleSettingsPhpStorm.xml]. Is being kept up to date with .editorconfig by exporting the TikiCodeStyleSettingsPhpStorm.xml into .editorconfig format. Remember to re-add the comment in the top of the .editorconfig after


:)

For how to manually apply settings
,

the phpStorm 2018 tab


/////
The config
file is available inside Tiki here: [https://sourceforge.net/p/tikiwiki/code/HEAD/tree/trunk/doc/devtools/TikiCodeStyleSettingsPhpStorm.xml|/doc/

/TikiCodeStyleSettingsPhpStorm.xml
] .
 Go to ''File -> Settings... -> Editor -> Code Style'' and in the {icon name="cog"} drop-down menu next to the ''Scheme'' drop down at the top, select ''Import Scheme ''->''Intellij IDEA code style XML''. Go to ''File -> Settings... -> Editor -> Code Style'' and in the {icon name="cog"} drop-down menu next to the ''Scheme'' drop down at the top, select ''Import Scheme ''->''Intellij IDEA code style XML''.
 +/////
 +You may download this [tiki-download_wiki_attachment.php?attId=209&page=PhpStorm&download=y|phpStorm 2017 Config File]. For previous versions, get another file from [#attzone|here] instead.
 +Go to ''File -> Settings... -> Editor -> Code Style'' and in the {icon name="cog"} drop-down menu next to the ''Scheme'' drop down at the top, select ''Import Scheme ''->''Intellij IDEA code style XML''.
 +This is the content of the third tab
 +{TABS}
 +To use the code style, select the code you want to reformat and navigate to __Code -> Reformat Code__. Any reformatting that can be done automatically to conform to the code style will be applied.
 +!!# Tiki Code Inspection (phpcs)
 +The CI will check your work when a commit is made. To have the same code style evaluation made on your code, with an inspection inside PhpStorm, follow the following steps:
 +{TABS(name="code_style_devmode" tabs="Tiki 22 +|Tiki 21-")}
 +You have to use the developer package for composer to install all the tools.
 +{CODE(colors="shell")}./temp/composer.phar install --prefer-dist --working-dir="vendor_bundled"{CODE}
 +This will install the development packages from Composer.
 +Then you can run the following console command:
 +{CODE(colors="shell")}php console.php dev:configure{CODE}
 +/////
 +{CODE(colors="shell")}./temp/composer.phar install --prefer-dist --working-dir="vendor_bundled"{CODE}
 +This will install the development packages from Composer.
 +{TABS}
 +{TABS(name="Preferences_code_style_devmode" tabs="PhpStorm 2022+|PhpStorm 2022-")}
 +''Preferences -> PHP -> Quality Tools -> PHP_CodeSniffer -> Configuration -> ... -> PHP Code Sniffer path''
 +* Set to "bin/phpcs",
 +* You may also increase the timeout to 30 seconds.
 +* Set Code standard to ''Custom'' Path to ruleset'' set to ''phpcs.xml.dist'' (in the tikiroot folder)
 +Now that we have our Code Sniffer binary referenced we can check it is validated as an inspection.
 +''Preferences -> Editor -> Inspections -> PHP -> Quality Tools -> PHPCodeSniffer Validation
 +/////
 +''Preferences -> Languages & Frameworks -> PHP -> Quality Tools -> Code Sniffer -> ... -> PHP Code Sniffer path''
 +set to "vendor_bundled/vendor/squizlabs/php_codesniffer/bin/phpcs". You may also increase the timeout to 30 seconds.
 +Now that we have our Code Sniffer binary referenced we will set up an inspection.
 +''Preferences -> Editor -> Inspections -> Quality Tools -> PHP Code Sniffer -> ... -> Path to ruleset'' set to ''phpcs.xml.dist'' (in the tikiroot folder)
 +Make sure ''Coding standard'' is set to ''Custom''
 +{TABS}
 +You now have near-realtime code sniffer evaluations set up. In addition to code style, it will warn about incompatible PHP.
 +To learn more read ((PHP Code Sniffer)).
 !!# Debugger (side of the HTTP server) !!# Debugger (side of the HTTP server)
 Choose a PHP debugger, either __Xdebug__ or Zend Debugger, install and configure it on the HTTP server's side. Choose a PHP debugger, either __Xdebug__ or Zend Debugger, install and configure it on the HTTP server's side.
 +!!!# Installation
 +Xdebug is included in XAMPP.
 To install Xdebug for PHP 5 on Debian, the following command may be used: To install Xdebug for PHP 5 on Debian, the following command may be used:
Lines: 73-76Lines: 156-160
 {CODE} {CODE}
 +!!!# Configuration
 To configure Xdebug on the HTTP server's side, the following settings could be used as a reference: To configure Xdebug on the HTTP server's side, the following settings could be used as a reference:
 {CODE(caption="php.ini" wrap="1" colors="bash")} {CODE(caption="php.ini" wrap="1" colors="bash")}
Lines: 79-83Lines: 163-173
 xdebug.remote_enable = On xdebug.remote_enable = On
 xdebug.remote_cookie_expire_time = 100000 ; 1 day xdebug.remote_cookie_expire_time = 100000 ; 1 day
- +xdebug.remote_autostart = On
xdebug.idekey =PHPSTORM
PHPSTORMxdebug.collect_return On
Onxdebug.collect_varsOn
= Onxdebug.On
= OnxdebugOn
show_mem_delta = Onxdebug.var_display_max_children = 512
 ;xdebug.collect_params = 2 ;xdebug.collect_params = 2
 {CODE} {CODE}
Lines: 125-129Lines: 215-219
 !!!!#Include path !!!!#Include path
 * Click at the plus sign * Click at the plus sign
-* add path to application source (real place without links) +* add the path to application source (the real place without links)
 !!# Server !!# Server
Lines: 137-141Lines: 227-236
 {img type="src" src="http://doc.tiki.org/display711" link="http://doc.tiki.org/display711" height="249" width="627"} {img type="src" src="http://doc.tiki.org/display711" link="http://doc.tiki.org/display711" height="249" width="627"}
-!!# Add a PHP Web Application +!!# Create project(s)

The code edited needs to be in a PhpStorm project. If you are working on several Tiki versions, it is best to create one project per version




PhpStorm allows using a single window for all projects or one window per project. Most Tiki developers seem to choose the


option.

!!# Add a PHP Script to Run/Debug Configurations
 Open ''Run'' -> ''Edit configurations...'' Open ''Run'' -> ''Edit configurations...''
Lines: 145-160Lines: 240-310
 {img type="src" src="http://doc.tiki.org/display712" link="http://doc.tiki.org/display712" height="306" width="624"} {img type="src" src="http://doc.tiki.org/display712" link="http://doc.tiki.org/display712" height="306" width="624"}
-!!# Create project(s)

The code edited needs to be
in a PhpStorm project. If you are working on several Tiki versions, it is best to create one project per version.
+!!# Set up PHPUnit in Run/Debug Config
-PhpStorm allows to use a single window for all projects or one window per project. Most Tiki developers seem to choose the latter option. +PHPUnit allows us to run our code tests. If you haven't already, we need to be in Tiki's Dev Mode for this to work, so see the "Tiki Code Inspection (phpcs)" section if you have not already.
 +First, phpStorm needs to know where PHPUnit is Click Prefrences->Languages & Frameworks->PHP->Test Frameworks.
 +Now point "Use Composer autoloader" to vendor_bundled/vendor/autolaod.php.
 +The "Default configuration file" should point to phpunit.xml.dist
 +{img fileId="1402" thumb="box"}
 +Now we need to add PHPUnit to the Run/Debug menu.
 +Click Run->Edit Configurations...->+ button -> PHPUnit
 +All you need to do here is name it, and make sure "Defined in the configuration file" is checked off.
 +{img fileId="1403" thumb="box"}
 +On the above image, the yellow arrows point to Run, Debug and Generate Code Coverage shortcut buttons.
 +You may now do the following:
 +# Run unit tests with Run, Debug and Generate Code Coverage buttons. (yellow arrows in above image)
 +# Integrates debugging into tests for easy troubleshooting
 +# Integrates with code coverage and displays the results inside the GUI. Image below. (requires xDebug)
 +# If your viewing test code, you can know run/debug only that test. Image below.
 +{img fileId="1405" thumb="box"} {img fileId="1404" thumb="box"}
 +!!# Configure directories
 +For Tiki 17 and above, in File -> Settings... -> Directories, mark temp/ as Excluded.
 !!# Set default headers !!# Set default headers
 In Settings..., Editor -> File and Code Templates, Includes tab, set PHP File Header to something like: In Settings..., Editor -> File and Code Templates, Includes tab, set PHP File Header to something like:
-{CODE(colors="null" theme="default")}// (c) Copyright 2002-2017 by authors of the Tiki Wiki CMS Groupware Project +{CODE(colors="null" theme="default")}// (c) Copyright 2002-2018 by authors of the Tiki Wiki CMS Groupware Project
 //  //
 // All Rights Reserved. See copyright.txt for details and a complete list of authors. // All Rights Reserved. See copyright.txt for details and a complete list of authors.
 // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
 // $Id${CODE} // $Id${CODE}
 +!!# Create a custom scope
 +A custom search scope will make Find in Path faster and more relevant. In Settings -> Appearance & Behavior -> Scopes, add a local scope which can be named "Tiki proper".
 +To exclude vendor directories, you can use a Pattern such as {CODE()}file:*/&&!file:lib/equation/*&&!file:lib/dracula/*&&!file:lib/ical/*&&!file:lib/openlayers/*&&!file:lib/swfobject/*&&!file:vendor_bundled/vendor/*/&&!file:db/tiki-secdb_*.sql{CODE}
 +language.php files are a major slowdown. To exclude them only keeping - for example - French (fr) files, you could use a pattern like {CODE()}file:*/&&!file:lib/equation/*&&!file:lib/dracula/*&&!file:lib/ical/*&&!file:lib/openlayers/*&&!file:lib/swfobject/*&&!file:vendor_bundled/vendor/*/&&!file:db/tiki-secdb_*.sql&&!file:lang//*||file:lang/fr//*{CODE}
 +!!#Useful phpStorm Plugins
 +There are lots of plugins that can make work on Tiki easier, but here are a few of the most useful ones.
 +!!!![https://plugins.jetbrains.com/plugin/7499-gittoolbox|GitToolBox]
 +One of the most useful features I use regularly is the inline viewing of git logs. It can help you to see what was changed when it changed and what the reason was.
 +{img fileId="1398" thumb="box"}
 +!!!![https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended-|Php Inspections (EA Extended)]
 +It has many useful inspections on code quality. It also offers auto-correct functionality to enhance some code "gotchas"
 +!!!![https://plugins.jetbrains.com/plugin/7320-php-annotations|PHP Annotations] & [https://plugins.jetbrains.com/plugin/7219-symfony-support|Symfony Support]
 +Makes filling out DocBlocks easer, with better auto-complete.
 +!!!![https://plugins.jetbrains.com/plugin/9927-deep-assoc-completion|deep-assoc-completion]
 +Makes filling out array keys easier with much better auto-complete.
 +!!!! [https://plugins.jetbrains.com/plugin/7276-php-advanced-autocomplete|PHP Advanced AutoComplete]
 +Yup, another plugin to make auto-complete more useful.
 +!!!! [https://plugins.jetbrains.com/plugin/13762-tree-of-usages|Tree of Usages]
 +This is a neat plugin that shows you where a function is called from. Shows it all nicely laid out in a tree. It can help visualize where functions are being called from. Often better than using a search feature to find function calls.
 +{img fileId="1400" thumb="box"}
 +!!# Miscellaneous
 +You may want to increase the maximum memory (Xmx) setting in ''Help -> Diagnostic -> Change memory settings'' if you have the default 750 MB limit and open several Tiki projects at the same time.
 !#Tips !#Tips
Lines: 169-173Lines: 319-323
 !!#Navigation !!#Navigation
-Turn on __Autoscroll from source__ option, so that the project browser repositions itself automatically to the page you are currently have in the editors. That way, if you want to do an operation on the file you are editing (ex: delete, rename), or see other files in the viscinity, you can just go from the editor to the project browser. +Turn on __Autoscroll from source__ option, so that the project browser repositions itself automatically to the page you currently have in the editors. That way, if you want to do an operation on the file you are editing (ex: delete, rename), or see other files in the viscinity, you can just go from the editor to the project browser.
 To set this option on: To set this option on:
Lines: 182-203Lines: 332-353
 * Ctrl+Shift+F: Search all files in the project * Ctrl+Shift+F: Search all files in the project
 * Command+O: Search for a class. * Command+O: Search for a class.
-* Ctrl+Command+O: Search for a symbol (class, method, variable, etc...) +* Ctrl+Alt+Shift+N or Ctrl+Command+O: Search for a symbol (class, method, variable, etc...)
 !!# How to merge !!# How to merge
 Useful tip from [https://sourceforge.net/p/tikiwiki/mailman/message/33501438/|this 2015 mail]: Useful tip from [https://sourceforge.net/p/tikiwiki/mailman/message/33501438/|this 2015 mail]:
 {QUOTE()} {QUOTE()}
-Seems that the way i do merging of single commits in phpStorm isn't in their documentation, i think i just worked it out several versions ago (don't like manuals mostly +Seems that the way I do merging of single commits in phpStorm isn't in their documentation, I think I just worked it out several versions ago (don't like manuals mostly
-So here's what i do... let's say i want to merge a commit from trunk into 14.x... +So here's what I do... let's say I want to merge a commit from trunk into 14.x...
-First thing to do is configure the branches in your project (you need that also to do "Compare with branch..." which is really handy too. +The first thing to do is configure the branches in your project (you need that also to do "Compare with branch..." which is really handy too.
  https://www.jetbrains.com/phpstorm/help/configure-subversion-branches.html  https://www.jetbrains.com/phpstorm/help/configure-subversion-branches.html
-It should work out where trunk is, and last time i did it it added branches, mods, third_party etc as branch locations, you can remove everything apart from branches from there (the lower box). +It should work out where trunk is, and last time I did it added branches, mods, third_party etc as branch locations, you can remove everything apart from branches from there (the lower box).
 To do a merge, go back to the Changes panel -> Working Copy info pane where the config branches link was and just under it is "Merge from..." - click that and the little drop down branch menu appears, click "trunk" (in this case) and you get the "Select Merge Variant" dialog, with "Quick Manual Select" button, should be obvious from there (?) To do a merge, go back to the Changes panel -> Working Copy info pane where the config branches link was and just under it is "Merge from..." - click that and the little drop down branch menu appears, click "trunk" (in this case) and you get the "Select Merge Variant" dialog, with "Quick Manual Select" button, should be obvious from there (?)
-The other two options (merge all, only any use when merging an experimental branch back into trunk, but i've never used it, looked too scary!) and Select with pre-filter, which takes ages and ages on tiki, probably due to our extensive history (and svn being a bit rubbish at this). +The other two options (merge all, only any use when merging an experimental branch back into trunk, but I've never used it, looked too scary!) and Select with pre-filter, which takes ages and ages on tiki, probably due to our extensive history (and svn being a bit rubbish at this).
 Hope that helps, odd that it's not on their documentation (afaics) Hope that helps, odd that it's not on their documentation (afaics)
Lines: 210-213Lines: 360-440
 # As of PhpStorm 2017.2, "Merge from..." is now in the "Subversion Working Copies Information" tab of the Version Control tool window. # As of PhpStorm 2017.2, "Merge from..." is now in the "Subversion Working Copies Information" tab of the Version Control tool window.
 # "Quick Manual Select" requires you to __check __the revision you want to merge, not just to select it. # "Quick Manual Select" requires you to __check __the revision you want to merge, not just to select it.
 +!!!# Conflicts
 +When there are conflicts, [https://youtrack.jetbrains.com/issue/WI-28563|the "Apply All non-conflicting changes" button needs to be used] to reduce the list of changes to apply to those which conflict.
 +!!# File Watcher Settings to auto-compile SCSS
 +{TABS(tabs="23+|21.2+ | 21 | 21 -" toggle="y" inside_pretty="n")}
 +Since Tiki23.x and due to constant improvement of the [https://doc.tiki.org/Console|Tiki Console] previous options became capricious and require constant maintenance.
 +While it is possible to initiate a php script with arguments from the phpStorm watcher, it is advised to use the [http://doc.tiki.org/Console|Tiki console] that includes a -+ scss +- command to compile your SCSS into CSS.
 +/////
 +{img fileId="1458" thumb="box"}
 +Since Tiki21.2 (at some point previous options stopped working anymore) you can use the [http://doc.tiki.org/Console|Tiki console] that includes a command to compile your SCSS into CSS from within phpStorm in a convenient way.
 +# Open the phpStorm settings ("⌘ ," on Mac), look for Tools => File watchers.
 +# Click on the + sign at the bottom of the window to create a new watcher.
 +# Give it a name and set it as follows:
 +*File type: SCSS
 +*Scope: Project files
 +*Program: -+/user/www/yourtiki/console.php+- (the full path to the console.php of THIS tiki website)
 +*Argument: -+scss:compile yourtheme+- (set your theme name else ALL the themes will be compiled)
 +* __Output path to refresh__: -+$FileParentDir$/css/$FileNameWithoutExtension$.css+-
 +* __Track only root files__: This should be checked otherwise extraneous css files may be created. A separate css file is not needed for less files that are imported into another less file. Checking this box ensures that only the ultimate less file generates a css.
 +* __Auto-save edited files to trigger the watcher__ : This is unchecked in the screenshot so that regeneration only occurs upon save. If checked, the css will be regenerated as you type in changes.
 +* __Trigger the watcher regardless of syntax errors__ : This is usually unchecked but sometimes you may use some "exotic" or advanced CSS command (or your code review preferences are outdated) that are seen by phpStorm as error and it forbid the compiler to run. In such case you can enable it (ignoring the error) or investigate to find what is seen as a syntax error (see below : Troubleshooting when File Watcher is throwing an error) and improve or let it that way.
 +* __Show console and Output filters__ : The settings for these two options in the screenshot are simply the default settings in PhpStorm. They can be changed according to your preference, they will not affect the compilation of the Less files.
 +# Click "Ok" to save
 +# Apply and it is done
 +Your SCSS should be compiled using the console.php command.
 +(you may have to restart phpStorm) for changes to be applied.
 +Note: depending your server setting you may need to change console.php permissions.
 +~pp~ chmod 755 console.php~/pp~
 +
 +/////
 +Once you've run the composer command scss program will be available directly.
 +(In my case MAMP is set to use php from the package itself and the path is not the one state above) {sign user="Bsfez" datetime="2018-06-21T08:57:26+00:00"}.
 + Below is a screenshot showing the settings to use for the SCSS file watcher with pscss. There may be a better way running the scss compiler that is included with Tiki.
 +* __Program__ : From within your Tiki use the path to the scss installed in your vendor_bundled folder: vendor_bundled/vendor/scssphp/scssphp/bin/pscss
 +{img fileId="1241" thumb="box"}
 +Some comments on the settings as shown in the screenshot above:
 +* __Arguments__: -+~np~--no-color~/np~ $FileName$+-
 +* __Output path to refresh__: -+$FileParentDir$/css/$FileNameWithoutExtension$.css+-
 +* __Track only root files__: This should be checked otherwise extraneous css files may be created. A separate css file is not needed for less files that are imported into another less file. Checking this box ensures that only the ultimate less file generates a css.
 +* __Auto-save edited files to trigger the watcher__ : This is unchecked in the screenshot so that regeneration only occurs upon save. If checked, the css will be regenerated as you type in changes.
 +* __Trigger the watcher regardless of syntax errors__ : This is usually unchecked but sometimes you may use some "exotic" or advanced CSS command (or your code review preferences are outdated) that are seen by phpStorm as error and it forbid the compiler to run. In such case you can enable it (ignoring the error) or investigate to find what is seen as a syntax error (see below : Troubleshooting when File Watcher is throwing an error) and improve or let it that way.
 +* __Show console and Output filters__ : The settings for these two options in the screenshot are simply the default settings in PhpStorm. They can be changed according to your preference, they will not affect the compilation of the Less files.
 +/////
 +Once you've run the composer command scss program will be available directly.
 +(In my case MAMP is set to use php from the package itself and the path is not the one state above) {sign user="Bsfez" datetime="2018-06-21T08:57:26+00:00"}.
 + Below is a screenshot showing the settings to use for the SCSS file watcher with pscss. They may be a better way running the scss compiler that is included with Tiki.
 +* __Program__ : From within your tiki use the path to the scss installed in your vendor_bundled folder: -+/mytiki/vendor_bundled/vendor/leafo/scssphp/bin/pscss+-
 +{img fileId="1241" thumb="box"}
 +Some comments on the settings as shown in the above screenshot:
 +* __Arguments__: -+~np~--no-color~/np~ $FileName$+-
 +* __Output path to refresh__: -+$FileParentDir$/css/$FileNameWithoutExtension$.css+-
 +* __Track only root files__: This should be checked otherwise extraneous css files may be created. A separate css file is not needed for less files that are imported into another less file. Checking this box ensures that only the ultimate less file generates a css.
 +* __Auto-save edited files to trigger the watcher__ : This is unchecked in the screenshot so that regeneration only occurs upon save. If checked, the css will be regenerated as you type in changes.
 +* __Trigger the watcher regardless of syntax errors__ : This is usually unchecked but sometimes you may use some "exotic" or advanced CSS command (or your code review preferences are outdated) that are seen by phpStorm as error and it forbid the compiler to run. In such case you can enable it (ignoring the error) or investigate to find what is seen as a syntax error (see below : Troubleshooting when File Watcher is throwing an error) and improve or let it that way.
 +* __Show console and Output filters__ : The settings for these two options in the screenshot are simply the default settings in PhpStorm. They can be changed according to your preference, they will not affect the compilation of the Less files.
 +{TABS}
 +!!!# Troubleshooting when File Watcher is throwing an error
 +There are cases running the SCSS will throw an error (usually 255) and the log doesn’t give much information.
 +You can run the console.php equivalent command on your shell or terminal to compile your SCSS file from within your Tiki directory.
 +{CODE(colors="shell")}console.php scss:compile yourthemename{CODE}
 +''Note: if you don’t specify a theme, the command will compile all the themes and it is taking much longer''
 +Console.php gives usually a better more verbose error message and helps to solve issues so you can continue to use phpStorm file watcher for SCSS.
 !#Troubleshooting !#Troubleshooting
 !!"Could not save project" error !!"Could not save project" error
Lines: 216-220Lines: 443-447
 Here is how to fix this issue on Mac. Details for other platforms may vary. Here is how to fix this issue on Mac. Details for other platforms may vary.
 {CODE()} {CODE()}
-# First, add your user name to group _www +# First, add your username to group _www
 sudo dseditgroup -o edit -a yourusername -t user _www sudo dseditgroup -o edit -a yourusername -t user _www
Lines: 289-293Lines: 516-520
 If you notice that PhpStorm occasionally gets in a rut and becomes very slow in responding to your actions, it probably means that you haven't allocated enough heap memory to it. If you notice that PhpStorm occasionally gets in a rut and becomes very slow in responding to your actions, it probably means that you haven't allocated enough heap memory to it.
-The way to fix it is to add the heap size in file __idea.vmoptions__. On the mac, this file is located under ~/Library/Preferences/WebIde60/. +The way to fix it is to add or change the heap size setting. From the main menu, choose __Help | Edit Custom VM Options__ to create a copy of the -+idea.vmoptions+- file in the user home directory. See [https://www.jetbrains.com/help/idea/increasing-memory-heap.html|PhpStorm's help page] for more information.
 For example, here is Alain's __idea.vmoptions__ file: For example, here is Alain's __idea.vmoptions__ file:
Lines: 301-310Lines: 528-537
 {CODE} {CODE}
-!!Can't use svn from command line
Although the graphical svn UI in PhpStorm is pretty good, there may be time when you want to use the command line SVN.
+!!Can't use svn from the command line
Although the graphical svn UI in PhpStorm is pretty good, there may be a time when you want to use the command line SVN.
 If you do that, it could be that the command line SVN will complain that the current directory is in the wrong SVN format.  If you do that, it could be that the command line SVN will complain that the current directory is in the wrong SVN format.
-This is usually due to the fact that PhpStorm uses its own version of SVN (which is embedded as a java library), and that it uses a SVN data format that is more recent that the command line SVN you are using. For example, maybe your command line SVN uses the 1.6 format, while the PhpStorm svn uses 1.7. +This is usually due to the fact that PhpStorm uses its own version of SVN (which is embedded as a Java library), and that it uses SVN data format that is more recent than the command line SVN you are using. For example, maybe your command line SVN uses the 1.6 format, while the PhpStorm svn uses 1.7.
 There are two ways to deal with this There are two ways to deal with this
Lines: 315-317Lines: 542-546
 !# Useful links !# Useful links
-Free video tutorial to help you setting (xdebug) and customising PhpStorm: https://laracasts.com/series/how-to-be-awesome-in-phpstorm/ +Free video tutorial to help you setting (Xdebug) and customizing PhpStorm: https://laracasts.com/series/how-to-be-awesome-in-phpstorm/



((Tiki Unit Testing with PhpStorm))

History

Advanced
Information Version
19 Jan 23 14:10 GMT-0000 Bernard Sfez / Tiki Specialist 213
19 Jan 23 13:32 GMT-0000 Bernard Sfez / Tiki Specialist Updating information about PhpStorm 2022 212
19 Jan 23 13:21 GMT-0000 Bernard Sfez / Tiki Specialist Clarifying and fixing error in command 211
12 Jun 22 05:40 GMT-0000 Bernard Sfez / Tiki Specialist Using the included watcher to compile SCSS is not reliable anymore. 210
14 Dec 20 13:26 GMT-0000 Bernard Sfez / Tiki Specialist 209
02 Nov 20 05:48 GMT-0000 Bernard Sfez / Tiki Specialist 208
29 Oct 20 10:45 GMT-0000 luciash d' being 🧙 207
29 Oct 20 10:37 GMT-0000 luciash d' being 🧙 206
29 Oct 20 07:31 GMT-0000 Bernard Sfez / Tiki Specialist 205
29 Oct 20 07:26 GMT-0000 Bernard Sfez / Tiki Specialist 204
29 Oct 20 07:25 GMT-0000 Bernard Sfez / Tiki Specialist 203
11 Apr 20 13:37 GMT-0000 Bernard Sfez / Tiki Specialist Move a paragraph that didn’t belong to the File Watcher section, remove duplication of parameters. 202
11 Apr 20 13:33 GMT-0000 Bernard Sfez / Tiki Specialist Added duplicate information... Someone changed the tabs content for "File Watcher Settings" and may be he is working on it (look weird for now) 201
11 Apr 20 13:29 GMT-0000 Bernard Sfez / Tiki Specialist Adding info on watcher SCSS 200
09 Apr 20 01:30 GMT-0000 drsassafras Formatting & clarity 199
09 Apr 20 01:27 GMT-0000 drsassafras Added section on setting up PHPUnit tests 198
08 Apr 20 11:43 GMT-0000 drsassafras Reduce size of headings 197
07 Apr 20 23:57 GMT-0000 drsassafras Added Section on useful phpStorm plugins 196
07 Apr 20 10:46 GMT-0000 drsassafras refined coding standards configuration 195
04 Apr 20 00:07 GMT-0000 luciash d' being 🧙 194
03 Apr 20 17:20 GMT-0000 drsassafras Added new .editorconfig method of Tiki code style 193
26 Feb 20 16:11 GMT-0000 Bernard Sfez / Tiki Specialist 192
14 Aug 19 13:49 GMT-0000 drsassafras small update on phpcs settings 191
13 Aug 19 21:19 GMT-0000 drsassafras change composer update to install to prevent updating of non-dev libs. 190
13 Aug 19 17:49 GMT-0000 drsassafras Fixing wrong location of phpcs 189

Keywords

The following is a list of keywords that should serve as hubs for navigation within the Tiki development and should correspond to documentation keywords.

Each feature in Tiki has a wiki page which regroups all the bugs, requests for enhancements, etc. It is somewhat a form of wiki-based project management. You can also express your interest in a feature by adding it to your profile. You can also try out the Dynamic filter.

Accessibility (WAI & 508)
Accounting
Administration
Ajax
Articles & Submissions
Backlinks
Banner
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Comment
Communication Center
Consistency
Contacts Address book
Contact us
Content template
Contribution
Cookie
Copyright
Credits
Custom Home (and Group Home Page)
Database MySQL - MyISAM
Database MySQL - InnoDB
Date and Time
Debugger Console
Diagram
Directory (of hyperlinks)
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
DogFood
Draw -superseded by Diagram
Dynamic Content
Preferences
Dynamic Variable
External Authentication
FAQ
Featured links
Feeds (RSS)
File Gallery
Forum
Friendship Network (Community)
Gantt
Group
Groupmail
Help
History
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
jQuery
Kaltura video management
Kanban
Karma
Live Support
Logs (system & action)
Lost edit protection
Mail-in
Map
Menu
Meta Tag
Missing features
Visual Mapping
Mobile
Mods
Modules
MultiTiki
MyTiki
Newsletter
Notepad
OS independence (Non-Linux, Windows/IIS, Mac, BSD)
Organic Groups (Self-managed Teams)
Packages
Payment
PDF
Performance Speed / Load / Compression / Cache
Permission
Poll
Profiles
Quiz
Rating
Realname
Report
Revision Approval
Scheduler
Score
Search engine optimization (SEO)
Search
Security
Semantic links
Share
Shopping Cart
Shoutbox
Site Identity
Slideshow
Smarty Template
Social Networking
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Staging and Approval
Stats
Survey
Syntax Highlighter (Codemirror)
Tablesorter
Tags
Task
Tell a Friend
Terms and Conditions
Theme
TikiTests
Federated Timesheets
Token Access
Toolbar (Quicktags)
Tours
Trackers
TRIM
User Administration
User Files
User Menu
Watch
Webmail and Groupmail
WebServices
Wiki History, page rename, etc
Wiki plugins extends basic syntax
Wiki syntax text area, parser, etc
Wiki structure (book and table of content)
Workspace and perspectives
WYSIWTSN
WYSIWYCA
WYSIWYG
XMLRPC
XMPP




Useful Tools