mirror of
https://gitlab.com/harald.mueller/aktuelle.kurse.git
synced 2024-11-24 02:31:58 +01:00
645 lines
53 KiB
Plaintext
645 lines
53 KiB
Plaintext
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
|
||
<!-- Error reporting -->
|
||
<script>(function(){
|
||
window.reportError = function(msg, file, line, col, err, isUnhandledRejection){};
|
||
var prevOnError = window.onerror;
|
||
var onError = function(msg, file, line, col, err) {
|
||
reportError(msg, file, line, col, err, false);
|
||
prevOnError && prevOnError.apply(window, arguments);
|
||
return false;
|
||
};
|
||
window.onerror = onError;
|
||
// Setup reporting for unhandled Promise rejection errors
|
||
window.addEventListener("unhandledrejection", function(e) {
|
||
if (!e.reason) return;
|
||
var l = getSrcLocation(e.reason);
|
||
reportError(e.reason.message, l.file, l.line, l.col, e.reason, true);
|
||
});
|
||
// Setup reporting for console.error and console.warn calls
|
||
patchConsole('error');
|
||
patchConsole('warn');
|
||
// Utility functions
|
||
function patchConsole(fnName) {
|
||
var fn = console[fnName];
|
||
console[fnName] = function() {
|
||
fn.apply(console, arguments);
|
||
var l; try {
|
||
throw new Error('_');
|
||
} catch (err) {
|
||
l = getSrcLocation(err, 1);
|
||
}
|
||
var msg = 'console.' + fnName + ': ' + Array.prototype.join.call(arguments, ' ');
|
||
reportError(msg, l.file, l.line, l.col, undefined, false);
|
||
};
|
||
}
|
||
function getSrcLocation(err, sd) {
|
||
var s = err && err.stack;
|
||
var l = s && s.split("\n")[1 + (sd|0)];
|
||
var r = l && (/^\s*at [^(]*\((.*?):(\d+)(:\d+)?\)$/.exec(l) || /^\s*at (.*?):(\d+)(:\d+)?$/.exec(l));
|
||
return r ? {file: r[1], line: r[2], col: r[3]} : {};
|
||
}
|
||
})();</script>
|
||
<!-- Error reporting --> <!-- Google Tag Manager -->
|
||
<script>(function() {
|
||
// Initialize Tag Manager queue
|
||
window.dataLayer = window.dataLayer || [];
|
||
window.gtmLoaded = false;
|
||
// Setup reporting for errors that occurred before Tag Manager initialized
|
||
var prevReportError = window.reportError;
|
||
var reportError = function(msg, file, line, col, err, isUnhandledRejection) {
|
||
if (!window.gtmLoaded || isUnhandledRejection) {
|
||
// Reproduce the behavior of the Tag Manager error handler
|
||
window.dataLayer.push(makeEvt(msg, file, line));
|
||
}
|
||
prevReportError && prevReportError.apply(window, arguments);
|
||
};
|
||
window.reportError = reportError;
|
||
// Utility functions
|
||
function makeEvt(msg, file, line) {
|
||
return {
|
||
event: "gtm.pageError", "gtm.errorMessage": msg,
|
||
"gtm.errorUrl": file, "gtm.errorLineNumber": line
|
||
};
|
||
}
|
||
})();</script>
|
||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;j.addEventListener(
|
||
'load', function(){window.gtmLoaded=true});f.parentNode.insertBefore(j,f);
|
||
})(window,document,'script','dataLayer','GTM-5P98');</script>
|
||
<!-- End Google Tag Manager --> <!-- Sentry -->
|
||
<script>
|
||
(function() {
|
||
window.sentryLoaded = false;
|
||
window.errorsForSentry = [];
|
||
var prevReportError = window.reportError;
|
||
var reportError = function(
|
||
msg,
|
||
file,
|
||
line,
|
||
col,
|
||
err,
|
||
isUnhandledRejection
|
||
) {
|
||
if (!window.sentryLoaded) {
|
||
window.errorsForSentry.push(err);
|
||
}
|
||
prevReportError && prevReportError.apply(window, arguments);
|
||
};
|
||
window.reportError = reportError;
|
||
})();
|
||
</script>
|
||
<script>
|
||
window.sentryLoad = function() {
|
||
var resolveEnvironment = function () {
|
||
const href = window.location.href;
|
||
if (/^https:\/\/(.+\.)?jetbrains\.com/.test(href)) {
|
||
return 'production';
|
||
} else if (/^https?:\/\/localhost/.test(href)) {
|
||
return 'local-dev';
|
||
} else {
|
||
return 'staging';
|
||
}
|
||
};
|
||
|
||
window.sentryLoaded = true;
|
||
Sentry.init({
|
||
environment: resolveEnvironment(),
|
||
dsn: 'https://1adb2a61713144eda0786e5af50ddc51@o245151.ingest.sentry.io/1423069',
|
||
autoSessionTracking: false,
|
||
release:
|
||
"jetbrainscom@4b8bfca2f7",
|
||
beforeSend: function(event) {
|
||
Object.keys(event).forEach(function(key) {
|
||
var value = event[key];
|
||
if (isEmail(value)) {
|
||
delete event[key];
|
||
}
|
||
});
|
||
return event;
|
||
}
|
||
});
|
||
Sentry.configureScope(function(scope) {
|
||
scope.setTag('page_locale', 'en-us');
|
||
scope.setTag('browser.locale', getPageLocale());
|
||
|
||
scope.setTag('http.urlFull', location.href);
|
||
var protocol = location.protocol || '';
|
||
//omit `:` from location.protocol string
|
||
var protocolString = protocol.substring(0, protocol.length - 1);
|
||
|
||
scope.setTag('http.protocol', protocolString);
|
||
|
||
scope.setTag('http.hostname', location.hostname);
|
||
|
||
var search = location.search || '';
|
||
//omit ? from location.search string
|
||
var searchString = search.substr(1);
|
||
if (searchString !== '') {
|
||
scope.setTag('http.query', searchString || '1');
|
||
}
|
||
var hash = location.hash || '';
|
||
//omit # from location.hash string
|
||
var hashString = hash.substr(1);
|
||
if (hashString !== '') {
|
||
scope.setTag('http.fragment', hashString);
|
||
}
|
||
});
|
||
window.errorsForSentry.forEach(Sentry.captureException);
|
||
|
||
function getPageLocale() {
|
||
return (
|
||
(navigator.languages && navigator.languages[0]) ||
|
||
navigator.language
|
||
);
|
||
}
|
||
function isEmail(value) {
|
||
var emailRegex = /[\+\-\_\.a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+\.[a-zA-Z0-9]+/g;
|
||
return emailRegex.test(value);
|
||
}
|
||
};
|
||
</script>
|
||
<script src="https://browser.sentry-cdn.com/6.10.0/bundle.min.js" crossorigin="anonymous" onload="sentryLoad()" async></script>
|
||
<!-- End Sentry -->
|
||
<title>Xdebug & Zend Debugger Bookmarklets Generator - Marklets | PhpStorm</title>
|
||
|
||
<meta charset="utf-8">
|
||
<meta http-equiv="x-ua-compatible" content="IE=edge">
|
||
<meta name="viewport" content="width=device-width, maximum-scale=1">
|
||
|
||
<link rel="icon" href="/favicon.ico?r=1234" type="image/x-icon"><!-- 48×48 -->
|
||
<link rel="icon" href="/icon.svg?r=1234" type="image/svg+xml" sizes="any">
|
||
<link rel="apple-touch-icon" href="/apple-touch-icon.png?r=1234" sizes="180x180"><!-- 180×180 -->
|
||
<link rel="icon" href="/icon-512.png?r=1234" type="image/png" sizes="512x512">
|
||
<link rel="manifest" href="/site.webmanifest">
|
||
|
||
<meta name="apple-mobile-web-app-title" content="JetBrains">
|
||
<meta name="application-name" content="JetBrains">
|
||
<meta name="msapplication-TileColor" content="#000000">
|
||
<meta name="theme-color" content="#000000">
|
||
<link rel="canonical" href="https://www.jetbrains.com/phpstorm/marklets/"/> <!-- .350-->
|
||
<meta name="description" content="The most intelligent PHP IDE with refactorings, code completion, on-the-fly code analysis and coding productivity orientation
|
||
"/>
|
||
|
||
<link rel="alternate" hreflang="x-default" href="https://www.jetbrains.com/phpstorm/marklets/" />
|
||
|
||
<link rel="alternate" hreflang="en" href="https://www.jetbrains.com/phpstorm/marklets/" />
|
||
<link rel="alternate" hreflang="en-CN" href="https://www.jetbrains.com.cn/en-us/phpstorm/marklets/" />
|
||
|
||
|
||
|
||
|
||
|
||
<script>
|
||
default_site_language = 'en-us';
|
||
var current_lang = 'en-us';
|
||
var i18n_info = {"current_lang": "en-us", "languages": [{"canonical": "en", "code": "en-us", "label": "English", "page_translated": true, "url": "/phpstorm/marklets/"}, {"canonical": "de", "code": "de-de", "label": "Deutsch", "page_translated": false, "url": "/de-de/phpstorm/marklets/"}, {"canonical": "es", "code": "es-es", "label": "Espa\u00f1ol", "page_translated": false, "url": "/es-es/phpstorm/marklets/"}, {"canonical": "fr", "code": "fr-fr", "label": "Fran\u00e7ais", "page_translated": false, "url": "/fr-fr/phpstorm/marklets/"}, {"canonical": "ja", "code": "ja-jp", "label": "\u65e5\u672c\u8a9e", "page_translated": false, "url": "/ja-jp/phpstorm/marklets/"}, {"canonical": "ko", "code": "ko-kr", "label": "\ud55c\uad6d\uc5b4", "page_translated": false, "url": "/ko-kr/phpstorm/marklets/"}, {"canonical": "ru", "code": "ru-ru", "label": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439", "page_translated": false, "url": "/ru-ru/phpstorm/marklets/"}, {"canonical": "zh-Hans", "code": "zh-cn", "label": "\u7b80\u4f53\u4e2d\u6587", "page_translated": false, "url": "/zh-cn/phpstorm/marklets/"}, {"canonical": "pt-BR", "code": "pt-br", "label": "Portugu\u00eas do Brasil", "page_translated": false, "url": "/pt-br/phpstorm/marklets/"}]};
|
||
var navigationMenu = {"primary": {"items": [{"title": "Developer Tools", "banners": [{"isActive": false, "title": "Space", "description": "An all-in-one solution for software projects and teams", "logoId": "space", "actionLabel": "Explore Space", "url": "/space/", "bgColor": "#167DFF", "bgGradient": "linear-gradient(117.63deg, rgb(8 89 255) -0.78%, rgb(0 154 231) 55.03%, rgb(221 255 84) 111.19%)", "cleaned_url": "/space/"}, {"isActive": false, "title": "Fleet", "description": "Next-generation IDE by JetBrains", "logoSrc": "/img/banners-menu-main/fleet.svg", "actionLabel": "Learn more", "url": "/fleet/", "bgColor": "#8701C7", "bgGradient": "linear-gradient(130.93deg, #69029A 0%, #8701C7 32.33%, #6B57FF 97.76%)", "cleaned_url": "/fleet/"}], "suggestions": [{"isActive": false, "url": "/products/", "title": "Not sure which tool is best for you?", "description": "Whichever technologies you use, there's a JetBrains tool to match", "actionLabel": "Find your tool", "cleaned_url": "/products/"}], "submenu": {"layout": "auto-fill inline inline inline", "columns": [{"title": "IDEs", "mobileLayout": "forceTwoColumns", "subColumns": [{"items": [{"isActive": false, "title": "AppCode", "url": "/objc/", "logoId": "appcode", "cleaned_url": "/objc/"}, {"isActive": false, "title": "CLion", "url": "/clion/", "logoId": "clion", "cleaned_url": "/clion/"}, {"isActive": false, "title": "DataGrip", "url": "/datagrip/", "logoId": "datagrip", "cleaned_url": "/datagrip/"}, {"isActive": false, "title": "DataSpell", "url": "/dataspell/", "logoId": "dataspell", "cleaned_url": "/dataspell/"}, {"isActive": false, "title": "Fleet", "url": "/fleet/", "logoId": "fleet", "cleaned_url": "/fleet/"}, {"isActive": false, "title": "GoLand", "url": "/go/", "logoId": "goland", "cleaned_url": "/go/"}]}, {"items": [{"isActive": false, "title": "IntelliJ IDEA", "url": "/idea/", "logoId": "intellij-idea", "cleaned_url": "/idea/"}, {"isActive": false, "title": "PhpStorm", "url": "/phpstorm/", "logoId": "phpstorm", "cleaned_url": "/phpstorm/"}, {"isActive": false, "title": "PyCharm", "url": "/pycharm/", "logoId": "pycharm", "cleaned_url": "/pycharm/"}, {"isActive": false, "title": "Rider", "url": "/rider/", "logoId": "rider", "cleaned_url": "/rider/"}, {"isActive": false, "title": "RubyMine", "url": "/ruby/", "logoId": "rubymine", "cleaned_url": "/ruby/"}, {"isActive": false, "title": "WebStorm", "url": "/webstorm/", "logoId": "webstorm", "cleaned_url": "/webstorm/"}]}]}, {"title": "PLUGINS & SERVICES", "mobileLayout": "forceTwoColumns", "items": [{"isActive": false, "title": "All Plugins", "url": "https://plugins.jetbrains.com/", "cleaned_url": "https://plugins.jetbrains.com/"}, {"isActive": false, "title": "IDE Themes", "url": "https://plugins.jetbrains.com/search?tags=Theme", "cleaned_url": "https://plugins.jetbrains.com/search?tags=Theme"}, {"isActive": false, "title": "Big Data Tools", "url": "https://plugins.jetbrains.com/plugin/12494-big-data-tools", "cleaned_url": "https://plugins.jetbrains.com/plugin/12494-big-data-tools"}, {"isActive": false, "title": "Code With Me", "url": "/code-with-me/", "cleaned_url": "/code-with-me/"}, {"isActive": false, "title": "QA Tools", "url": "https://lp.jetbrains.com/qa/", "cleaned_url": "https://lp.jetbrains.com/qa/"}, {"isActive": false, "title": "Rust", "url": "/rust/", "cleaned_url": "/rust/"}, {"isActive": false, "title": "Scala", "url": "https://plugins.jetbrains.com/plugin/1347-scala", "cleaned_url": "https://plugins.jetbrains.com/plugin/1347-scala"}, {"isActive": false, "title": "Toolbox App", "url": "/toolbox-app/", "cleaned_url": "/toolbox-app/"}]}, {"title": ".NET & VISUAL STUDIO", "hasSeparator": true, "items": [{"isActive": false, "title": "Rider", "url": "/rider/", "logoId": "rider", "cleaned_url": "/rider/"}, {"isActive": false, "title": "ReSharper", "url": "/resharper/", "logoId": "resharper", "cleaned_url": "/resharper/"}, {"isActive": false, "title": "ReSharper C++", "url": "/resharper-cpp/", "logoId": "resharper-cpp", "cleaned_url": "/resharper-cpp/"}, {"isActive": false, "title": "dotCover", "url": "/dotcover/", "logoId": "dotcover", "cleaned_url": "/dotcover/"}, {"isActive": false, "title": "dotMemory", "url": "/dotmemory/", "logoId": "dotmemory", "cleaned_url": "/dotmemory/"}, {"isActive": false, "title": "dotPeek", "url": "/decompiler/", "logoId": "dotpeek", "cleaned_url": "/decompiler/"}, {"isActive": false, "title": "dotTrace", "url": "/profiler/", "logoId": "dottrace", "cleaned_url": "/profiler/"}, {"isActive": false, "title": ".NET Tools Plugins", "url": "https://plugins.jetbrains.com/search?isFeaturedSearch=true&products=resharper&products=rider", "cleaned_url": "https://plugins.jetbrains.com/search?isFeaturedSearch=true&products=resharper&products=rider"}]}, {"title": "LANGUAGES & FRAMEWORKS", "hasSeparator": true, "items": [{"isActive": false, "title": "Kotlin", "url": "https://kotlinlang.org/", "cleaned_url": "https://kotlinlang.org/"}, {"isActive": false, "title": "Ktor", "url": "https://ktor.io/", "cleaned_url": "https://ktor.io/"}, {"isActive": false, "title": "MPS", "url": "/mps/", "cleaned_url": "/mps/"}, {"isActive": false, "title": "Compose for Desktop", "url": "/lp/compose/", "cleaned_url": "/lp/compose/"}]}]}}, {"title": "Team Tools", "banners": [{"isActive": false, "title": "Datalore", "description": "Smart Jupyter environment for team collaboration", "logoId": "datalore", "actionLabel": "Learn more", "url": "/datalore/enterprise/", "bgColor": "#005CD1", "bgGradient": "linear-gradient(120.81deg, #003396 11.31%, #009CF4 95.37%)", "cleaned_url": "/datalore/enterprise/"}, {"isActive": false, "title": "YouTrack", "description": "Powerful project management for all your teams", "logoId": "youtrack", "actionLabel": "Learn more", "url": "/youtrack/", "bgColor": "#6B57FF", "bgGradient": "linear-gradient(141.09deg, #D80663 -21.81%, #834CEF 33.98%, #00B5E2 100.21%)", "cleaned_url": "/youtrack/"}], "submenu": {"layout": "8 4", "columns": [{"title": "IN-CLOUD AND ON-PREMISES SOLUTIONS", "subColumns": [{"items": [{"isActive": false, "title": "Datalore", "url": "https://datalore.jetbrains.com/", "description": "The online data science notebook", "cleaned_url": "https://datalore.jetbrains.com/"}, {"isActive": false, "title": "Space", "url": "/space/", "description": "An all-in-one solution for software projects and teams", "cleaned_url": "/space/"}, {"isActive": false, "title": "TeamCity", "url": "/teamcity/", "description": "Powerful Continuous Integration out of the box", "cleaned_url": "/teamcity/"}]}, {"items": [{"isActive": false, "title": "YouTrack", "url": "/youtrack/", "description": "Powerful project management for all your teams", "cleaned_url": "/youtrack/"}, {"isActive": false, "title": "Upsource", "url": "/upsource/", "description": "Code review and project analytics", "cleaned_url": "/upsource/"}, {"isActive": false, "title": "Qodana", "url": "/qodana/", "description": "The code quality platform for your favorite CI", "cleaned_url": "/qodana/"}]}]}, {"title": "EXTENSIONS", "hasSeparator": true, "items": [{"isActive": false, "title": "TeamCity Plugins", "url": "https://plugins.jetbrains.com/teamcity/", "cleaned_url": "https://plugins.jetbrains.com/teamcity/"}, {"isActive": false, "title": "YouTrack Extensions", "url": "https://plugins.jetbrains.com/youtrack/", "cleaned_url": "https://plugins.jetbrains.com/youtrack/"}, {"isActive": false, "title": "JetBrains Hub", "url": "/hub/", "cleaned_url": "/hub/"}]}]}}, {"title": "Learning Tools", "banners": [{"isActive": false, "title": "JetBrains Academy for Organizations", "description": "Empower your institution by cultivating the motivation to learn", "actionLabel": "Discover more", "url": "https://lp.jetbrains.com/academy/for-organizations/", "logoSrc": "/img/banners-menu-main/academy-logo.svg", "bgColor": "#B01DF6", "bgGradient": "linear-gradient(335.07deg, #636CEA 0%, #834CEF 40.63%, #771F89 100%)", "cleaned_url": "https://lp.jetbrains.com/academy/for-organizations/"}], "submenu": {"columns": [{"title": "EDUCATIONAL PRODUCTS", "items": [{"isActive": false, "title": "JetBrains Academy", "url": "/academy/", "description": "A hands-on learning platform integrated with JetBrains IDEs", "cleaned_url": "/academy/"}, {"isActive": false, "title": "PyCharm Edu", "url": "/pycharm-edu/", "description": "A free IDE for learning and teaching programming with Python", "cleaned_url": "/pycharm-edu/"}, {"isActive": false, "title": "IntelliJ IDEA Edu", "url": "/idea-edu/", "description": "A free IDE for learning and teaching programming with Java, Kotlin, and Scala", "cleaned_url": "/idea-edu/"}, {"isActive": false, "title": "EduTools plugin", "url": "https://plugins.jetbrains.com/plugin/10081-edutools", "description": "Adding educational functionality to JetBrains IDEs", "cleaned_url": "https://plugins.jetbrains.com/plugin/10081-edutools"}]}, {"title": "FREE LICENSES", "items": [{"isActive": false, "title": "For Students and Teachers", "url": "/community/education/#students", "description": "JetBrains IDEs for individual academic use", "cleaned_url": "/community/education/#students"}, {"isActive": false, "title": "For Educational Institutions", "url": "/community/education/#classrooms", "description": "JetBrains IDEs and team tools for classrooms", "cleaned_url": "/community/education/#classrooms"}, {"isActive": false, "title": "For Courses and Bootcamps", "url": "/community/education/#courses", "description": "JetBrains IDEs for your students", "cleaned_url": "/community/education/#courses"}]}, {"title": "OPPORTUNITIES", "hasSeparator": true, "items": [{"isActive": false, "title": "Kotlin for Education", "url": "https://kotlinlang.org/education/", "cleaned_url": "https://kotlinlang.org/education/"}, {"isActive": false, "title": "University Relations", "url": "/education/university-relations/", "cleaned_url": "/education/university-relations/"}, {"isActive": false, "title": "Internships", "url": "/careers/internships/", "cleaned_url": "/careers/internships/"}]}]}}, {"title": "Solutions", "banners": [{"isActive": false, "title": "Developer Tools for Your Business", "description": "Professional tools for productive development", "actionLabel": "Learn more", "url": "/store/business/", "logoSrc": "/img/banners-menu-main/containers.svg", "bgColor": "#6B57FF", "bgGradient": "linear-gradient(246.1deg, rgb(0 224 214) 1.67%, rgb(126 27 253) 92.48%)", "cleaned_url": "/store/business/"}, {"isActive": false, "title": "Remote Development", "description": "Connect to remote dev environments from anywhere in seconds", "actionLabel": "Discover more", "url": "/remote-development/", "bgColor": "#2DF388", "bgGradient": "linear-gradient(240.88deg, #2DF388 0%, #05BF87 37.75%, #027474 98.39%)", "cleaned_url": "/remote-development/"}], "submenu": {"layout": "8 4", "columns": [{"title": "BY INDUSTRY & TECHNOLOGY", "layout": "6 6", "subColumns": [{"items": [{"isActive": false, "title": "Remote Development", "url": "/remote-development/", "description": "Tools for remote development for you and your team", "cleaned_url": "/remote-development/"}, {"isActive": false, "title": "Game Development", "url": "/gamedev/", "description": "Tools for game development for any platform", "cleaned_url": "/gamedev/"}, {"isActive": false, "title": "DevOps", "url": "/devops/", "description": "Tools and integrations for any infrastructure", "cleaned_url": "/devops/"}, {"isActive": false, "title": "Quality Assurance", "url": "/quality-assurance-solutions/", "description": "Tools for Quality Assurance and Test Automation", "cleaned_url": "/quality-assurance-solutions/"}]}, {"items": [{"isActive": false, "title": "C++ Tools", "url": "/cpp/", "description": "Tools for C/C++ development for any platform", "cleaned_url": "/cpp/"}, {"isActive": false, "title": "Data Tools", "url": "/data-tools/", "description": "Tools for Big Data and Data Science", "cleaned_url": "/data-tools/"}, {"isActive": false, "title": "Software Development", "url": "/space/solutions/software-teams/", "description": "All-in-one solution for software projects and teams", "cleaned_url": "/space/solutions/software-teams/"}]}]}, {"title": "RECOMMENDED", "hasSeparator": true, "items": [{"isActive": false, "title": "All Products Pack", "url": "/all/", "cleaned_url": "/all/"}, {"isActive": false, "title": ".NET Tools", "url": "/dotnet/", "cleaned_url": "/dotnet/"}, {"isActive": false, "title": "JetBrains for Education", "url": "/education/", "cleaned_url": "/education/"}, {"isActive": false, "title": "All JetBrains Products", "url": "/products/", "cleaned_url": "/products/"}, {"isActive": false, "title": "JetBrains Marketplace", "url": "https://plugins.jetbrains.com/", "cleaned_url": "https://plugins.jetbrains.com/"}]}]}}, {"title": "Support", "banners": [{"isActive": false, "title": "Download and Install", "actionLabel": "Download and Install", "url": "/products/", "logoSrc": "/img/banners-menu-main/download.svg", "bgColor": "#6B57FF", "bgGradient": "linear-gradient(294.91deg, #FF318C -50.1%, #6B57FF 97.43%)", "cleaned_url": "/products/"}, {"isActive": false, "title": "Contact us", "actionLabel": "Contact us", "url": "/company/contacts/", "logoSrc": "/img/banners-menu-main/test-review.svg", "bgColor": "#21D789", "bgGradient": "linear-gradient(283.8deg, #087CFA 5.73%, #21D789 100%)", "cleaned_url": "/company/contacts/"}], "submenu": {"columns": [{"title": "PRODUCT & TECHNICAL SUPPORT", "layout": "12", "subColumns": [{"items": [{"isActive": false, "title": "Support Center", "url": "/support/", "cleaned_url": "/support/"}, {"isActive": false, "title": "Product Documentation", "url": "/help/", "cleaned_url": "/help/"}, {"isActive": false, "title": "Webinars", "url": "/company/events/webinars/", "cleaned_url": "/company/events/webinars/"}, {"isActive": false, "title": "Early Access", "url": "/resources/eap/", "cleaned_url": "/resources/eap/"}, {"isActive": false, "title": "Blog", "url": "https://blog.jetbrains.com/", "cleaned_url": "https://blog.jetbrains.com/"}]}]}, {"title": "FREQUENT TASKS", "hasSeparator": true, "items": [{"isActive": false, "title": "Manage your account", "url": "https://account.jetbrains.com/profile-details", "cleaned_url": "https://account.jetbrains.com/profile-details"}, {"isActive": false, "title": "Manage your licenses", "url": "https://account.jetbrains.com/licenses", "cleaned_url": "https://account.jetbrains.com/licenses"}, {"isActive": false, "title": "Contact Sales", "url": "/support/sales/", "cleaned_url": "/support/sales/"}, {"isActive": false, "title": "Licensing FAQ", "url": "https://sales.jetbrains.com", "cleaned_url": "https://sales.jetbrains.com"}]}]}}, {"title": "Store", "banners": [{"isActive": false, "title": "All Products Pack", "description": "Get all JetBrains desktop tools including 10 IDEs,<br />2 profilers, and 3 extensions", "actionLabel": "Learn more", "url": "/all/", "logoSrc": "/img/banners-menu-main/discount.svg", "bgColor": "#FF318C", "bgGradient": "linear-gradient(293.2deg, rgb(253 13 122) 13.45%, rgb(252 100 67) 73.57%, rgb(248 158 7) 100%)", "cleaned_url": "/all/"}, {"isActive": false, "title": "The Total Economic Impact\u2122 of IntelliJ IDEA study", "description": "Commissioned TEI research conducted by Forrester Consulting", "actionLabel": "Learn more", "url": "/lp/intellijidea-forrester-tei/", "logoId": "intellij-idea", "bgColor": "#6B57FF", "bgGradient": "linear-gradient(304.12deg, #087CFA -14.07%, #353535 109.22%)", "cleaned_url": "/lp/intellijidea-forrester-tei/"}], "submenu": {"columns": [{"title": "DEVELOPER TOOLS", "layout": "12 12 12", "subColumns": [{"items": [{"isActive": false, "title": "For Individual Use", "url": "/store/#personal", "cleaned_url": "/store/#personal"}, {"isActive": false, "title": "For Teams and Organizations", "url": "/store/#commercial", "cleaned_url": "/store/#commercial"}, {"isActive": false, "title": "Special offers & programs", "url": "/store/#discounts", "cleaned_url": "/store/#discounts"}]}, {"title": "SERVICES & PLUGINS", "items": [{"isActive": false, "title": "Code With Me", "url": "/code-with-me/buy", "cleaned_url": "/code-with-me/buy"}, {"isActive": false, "title": "Marketplace", "url": "/store/plugins/", "cleaned_url": "/store/plugins/"}]}, {"title": "LEARNING TOOLS", "items": [{"isActive": false, "title": "JetBrains Academy", "url": "/academy/buy/", "cleaned_url": "/academy/buy/"}]}]}, {"title": "TEAM TOOLS", "items": [{"isActive": false, "title": "Space", "url": "/store/teamware#space-store-section", "cleaned_url": "/store/teamware#space-store-section"}, {"isActive": false, "title": "TeamCity", "url": "/store/teamware#teamcity-store-section", "cleaned_url": "/store/teamware#teamcity-store-section"}, {"isActive": false, "title": "YouTrack", "url": "/store/teamware#youtrack-store-section", "cleaned_url": "/store/teamware#youtrack-store-section"}, {"isActive": false, "title": "Datalore", "url": "https://datalore.jetbrains.com/", "cleaned_url": "https://datalore.jetbrains.com/"}]}, {"title": "SALES SUPPORT", "hasSeparator": true, "items": [{"isActive": false, "title": "Contact Sales", "url": "/support/sales/", "cleaned_url": "/support/sales/"}, {"isActive": false, "title": "Purchase Terms", "url": "/legal/docs/store/terms/", "cleaned_url": "/legal/docs/store/terms/"}, {"isActive": false, "title": "FAQ", "url": "https://sales.jetbrains.com/", "cleaned_url": "https://sales.jetbrains.com/"}, {"isActive": false, "title": "Partners and Resellers", "url": "/company/partners/", "cleaned_url": "/company/partners/"}]}]}}, {"isActive": false, "title": "Login", "url": "https://account.jetbrains.com/", "isMobileOnly": true, "cleaned_url": "https://account.jetbrains.com/"}]}, "secondary": {"isActive": true, "id": "product_phpstorm", "logoId": "phpstorm", "url": "/phpstorm/", "title": "PhpStorm", "items": [{"isActive": false, "title": "Coming in new version", "url": "/phpstorm/nextversion/", "isEapItem": true, "isItemHidden": true, "cleaned_url": "/phpstorm/nextversion/"}, {"isActive": false, "title": "What's New", "version": "2021.3", "url": "/phpstorm/whatsnew/", "items": [{"isActive": false, "title": "What's New 2021.2", "url": "/phpstorm/whatsnew/2021-2/", "cleaned_url": "/phpstorm/whatsnew/2021-2/"}, {"isActive": false, "title": "What's New 2021.1", "url": "/phpstorm/whatsnew/2021-1/", "cleaned_url": "/phpstorm/whatsnew/2021-1/"}, {"isActive": false, "title": "What's New 2020.3", "url": "/phpstorm/whatsnew/2020-3/", "cleaned_url": "/phpstorm/whatsnew/2020-3/"}], "cleaned_url": "/phpstorm/whatsnew/"}, {"isActive": false, "title": "Features", "url": "/phpstorm/features/", "heading": "Features overview", "items": [{"isActive": false, "title": "PHP Code Editor", "url": "/phpstorm/features/php_code_editor.html", "cleaned_url": "/phpstorm/features/php_code_editor.html"}, {"isActive": false, "title": "Debugging, Testing and Profiling", "url": "/phpstorm/features/debugging_testing_profiling.html", "cleaned_url": "/phpstorm/features/debugging_testing_profiling.html"}, {"isActive": false, "title": "HTML/CSS/JavaScript Editor", "url": "/phpstorm/features/html_css_js_editor.html", "cleaned_url": "/phpstorm/features/html_css_js_editor.html"}, {"isActive": false, "title": "Development Environment", "url": "/phpstorm/features/development_environment.html", "cleaned_url": "/phpstorm/features/development_environment.html"}, {"isActive": false, "title": "PHP Frameworks Support", "url": "/phpstorm/features/frameworks-support.html", "cleaned_url": "/phpstorm/features/frameworks-support.html"}], "cleaned_url": "/phpstorm/features/"}, {"isActive": false, "title": "Learn", "url": "/phpstorm/documentation/", "items": [{"isActive": false, "title": "Quick Start Guide", "url": "/phpstorm/documentation/", "cleaned_url": "/phpstorm/documentation/"}, {"isActive": false, "title": "Ultimate Debugging Guide", "url": "/phpstorm/documentation/phpstorm-video-tutorials.jsp", "cleaned_url": "/phpstorm/documentation/phpstorm-video-tutorials.jsp"}], "cleaned_url": "/phpstorm/documentation/"}, {"isActive": false, "title": "Blog & Social", "url": "/phpstorm/social/", "cleaned_url": "/phpstorm/social/"}, {"isActive": false, "title": "Buy", "url": "/phpstorm/buy/", "cleaned_url": "/phpstorm/buy/"}, {"isActive": false, "title": "Download", "url": "/phpstorm/download/", "type": "button", "cleaned_url": "/phpstorm/download/"}], "cleaned_url": "/phpstorm/"}};
|
||
|
||
var is_layout_adaptive = false;
|
||
|
||
var disable_language_picker = false;
|
||
|
||
var localized_domains = [{"defaultLanguage": "en", "domain": "blog.jetbrains.com", "locales": {"de-de": "de", "en-us": "en", "es-es": "es", "fr-fr": "fr", "ja-jp": "ja", "ko-kr": "ko", "pt-br": "pt-br", "ru-ru": "ru", "zh-cn": "zh-hans"}, "pathsLocalization": false, "suffixDefault": false}];
|
||
|
||
var english_only_url_prefixes = [];
|
||
|
||
var is_landing_view = false;
|
||
|
||
var theme = 'None';
|
||
</script>
|
||
|
||
<script></script>
|
||
|
||
|
||
|
||
<link href="/_assets/common.b34eea6f3b333c5995c8.css" rel="stylesheet" type="text/css">
|
||
<link href="/_assets/default-page.e57a2ef176c16e8c7cc1.css" rel="stylesheet" type="text/css">
|
||
<script src="/_assets/common.0da8e15926b0abcd2e27.js" type="text/javascript"></script>
|
||
<script src="/_assets/default-page.4c542c14ea7088c427ac.js" type="text/javascript"></script>
|
||
<script src="/_assets/phpstorm/marklets/index.entry.bad91604b5c091c6ad80.js" type="text/javascript"></script>
|
||
|
||
|
||
|
||
|
||
<!-- Social Media tag Starts -->
|
||
<!-- Open Graph data -->
|
||
<meta property="og:title" content="Xdebug & Zend Debugger Bookmarklets Generator - Marklets | PhpStorm"/>
|
||
|
||
<meta property="og:description" content="The most intelligent PHP IDE with refactorings, code completion, on-the-fly code analysis and coding productivity orientation
|
||
"/>
|
||
<meta property="og:image" content="https://resources.jetbrains.com/storage/products/phpstorm/img/meta/preview.png"/>
|
||
|
||
<meta property="og:site_name" content="JetBrains"/>
|
||
<meta property="og:type" content="website"/>
|
||
<meta property="og:url" content= https://www.jetbrains.com/phpstorm/marklets/ />
|
||
<!-- OpenGraph End -->
|
||
|
||
<!-- Schema.org data -->
|
||
<script type="application/ld+json">
|
||
{"@context": "http://schema.org/", "@type": "Product", "alternateName": "JetBrains PhpStorm", "brand": {"@type": "Brand", "name": "JetBrains"}, "description": "PhpStorm: Lightning-Smart IDE for PHP Programming by JetBrains", "image": "https://resources.jetbrains.com/storage/products/phpstorm/img/meta/preview.png", "logo": "https://resources.jetbrains.com/storage/products/phpstorm/img/meta/phpstorm_logo_300x300.png", "name": "PhpStorm", "offers": {"@type": "AggregateOffer", "highPrice": "19.90", "lowPrice": "8.90", "priceCurrency": "USD"}, "releaseDate": "2021-06-02T09:00", "sameAs": ["https://twitter.com/phpstorm", "http://www.wikidata.org/entity/Q1786113"]}
|
||
</script>
|
||
<script type="application/ld+json">
|
||
{"@context": "http://schema.org", "@type": "SoftwareApplication", "applicationCategory": "DeveloperApplication", "author": {"@type": "Organization", "name": "JetBrains"}, "datePublished": "2021-06-02T09:00", "downloadUrl": "https://www.jetbrains.com/phpstorm/download/", "image": "https://resources.jetbrains.com/storage/products/phpstorm/img/meta/preview.png", "name": "PhpStorm", "operatingSystem": "Windows, macOS, Linux", "publisher": {"@type": "Organization", "name": "JetBrains"}, "requirements": "RAM: 2 GB, Screen Resolution: 1024x768", "screenshot": "https://www.jetbrains.com/phpstorm/img/screenshots/phpstorm_debugging@2x.png", "softwareVersion": "2021.1", "url": "https://www.jetbrains.com/phpstorm/"}
|
||
</script>
|
||
<script type="application/ld+json">
|
||
{
|
||
"@context": "http://schema.org",
|
||
"@type": "WebPage",
|
||
"@id": "https://www.jetbrains.com/phpstorm/marklets/#webpage",
|
||
"url": "https://www.jetbrains.com/phpstorm/marklets/",
|
||
"name": "Xdebug & Zend Debugger Bookmarklets Generator - Marklets | PhpStorm",
|
||
"description": "The most intelligent PHP IDE with refactorings, code completion, on-the-fly code analysis and coding productivity orientation",
|
||
"image": "https://resources.jetbrains.com/storage/products/phpstorm/img/meta/phpstorm_1280x800.png"
|
||
}</script>
|
||
<!-- Schema.org end -->
|
||
|
||
<!-- Twitter data -->
|
||
<meta name="twitter:description" content="The most intelligent PHP IDE with refactorings, code completion, on-the-fly code analysis and coding productivity orientation
|
||
">
|
||
|
||
<meta name="twitter:title" content="Xdebug & Zend Debugger Bookmarklets Generator - Marklets | PhpStorm">
|
||
|
||
|
||
<meta name="twitter:card" content="summary_large_image">
|
||
<meta name="twitter:site" content="@phpstorm">
|
||
<meta name="twitter:creator" content="@phpstorm">
|
||
<meta name="twitter:image:src" content="https://resources.jetbrains.com/storage/products/phpstorm/img/meta/preview.png">
|
||
<meta name="twitter:label1" content="Platforms:">
|
||
<meta name="twitter:data1" content="Windows, macOS, Linux">
|
||
<!-- Twitter End -->
|
||
<!-- Social Media tag Ends -->
|
||
</head>
|
||
|
||
<body class="nojs ">
|
||
|
||
<!-- Google Tag Manager (noscript) -->
|
||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5P98" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||
<!-- End Google Tag Manager (noscript) -->
|
||
<script>
|
||
/*! modernizr 3.2.0 (Custom Build) | MIT *
|
||
* http://modernizr.com/download/?-flexbox-flexboxtweener !*/
|
||
!function(e,n,t){function r(e,n){return typeof e===n}function o(){var e,n,t,o,i,s,l;for(var f in v)if(v.hasOwnProperty(f)){if(e=[],n=v[f],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;t<n.options.aliases.length;t++)e.push(n.options.aliases[t].toLowerCase());for(o=r(n.fn,"function")?n.fn():n.fn,i=0;i<e.length;i++)s=e[i],l=s.split("."),1===l.length?Modernizr[l[0]]=o:(!Modernizr[l[0]]||Modernizr[l[0]]instanceof Boolean||(Modernizr[l[0]]=new Boolean(Modernizr[l[0]])),Modernizr[l[0]][l[1]]=o),C.push((o?"":"no-")+l.join("-"))}}function i(e,n){return!!~(""+e).indexOf(n)}function s(e){return e.replace(/([a-z])-([a-z])/g,function(e,n,t){return n+t.toUpperCase()}).replace(/^-/,"")}function l(e,n){return function(){return e.apply(n,arguments)}}function f(e,n,t){var o;for(var i in e)if(e[i]in n)return t===!1?e[i]:(o=n[e[i]],r(o,"function")?l(o,t||n):o);return!1}function a(e){return e.replace(/([A-Z])/g,function(e,n){return"-"+n.toLowerCase()}).replace(/^ms-/,"-ms-")}function u(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):b?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}function d(){var e=n.body;return e||(e=u(b?"svg":"body"),e.fake=!0),e}function p(e,t,r,o){var i,s,l,f,a="modernizr",p=u("div"),c=d();if(parseInt(r,10))for(;r--;)l=u("div"),l.id=o?o[r]:a+(r+1),p.appendChild(l);return i=u("style"),i.type="text/css",i.id="s"+a,(c.fake?c:p).appendChild(i),c.appendChild(p),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(n.createTextNode(e)),p.id=a,c.fake&&(c.style.background="",c.style.overflow="hidden",f=_.style.overflow,_.style.overflow="hidden",_.appendChild(c)),s=t(p,e),c.fake?(c.parentNode.removeChild(c),_.style.overflow=f,_.offsetHeight):p.parentNode.removeChild(p),!!s}function c(n,r){var o=n.length;if("CSS"in e&&"supports"in e.CSS){for(;o--;)if(e.CSS.supports(a(n[o]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var i=[];o--;)i.push("("+a(n[o])+":"+r+")");return i=i.join(" or "),p("@supports ("+i+") { #modernizr { position: absolute; } }",function(e){return"absolute"==getComputedStyle(e,null).position})}return t}function m(e,n,o,l){function f(){d&&(delete E.style,delete E.modElem)}if(l=r(l,"undefined")?!1:l,!r(o,"undefined")){var a=c(e,o);if(!r(a,"undefined"))return a}for(var d,p,m,h,y,v=["modernizr","tspan"];!E.style;)d=!0,E.modElem=u(v.shift()),E.style=E.modElem.style;for(m=e.length,p=0;m>p;p++)if(h=e[p],y=E.style[h],i(h,"-")&&(h=s(h)),E.style[h]!==t){if(l||r(o,"undefined"))return f(),"pfx"==n?h:!0;try{E.style[h]=o}catch(g){}if(E.style[h]!=y)return f(),"pfx"==n?h:!0}return f(),!1}function h(e,n,t,o,i){var s=e.charAt(0).toUpperCase()+e.slice(1),l=(e+" "+x.join(s+" ")+s).split(" ");return r(n,"string")||r(n,"undefined")?m(l,n,o,i):(l=(e+" "+S.join(s+" ")+s).split(" "),f(l,n,t))}function y(e,n,r){return h(e,t,t,n,r)}var v=[],g={_version:"3.2.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var t=this;setTimeout(function(){n(t[e])},0)},addTest:function(e,n,t){v.push({name:e,fn:n,options:t})},addAsyncTest:function(e){v.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=g,Modernizr=new Modernizr;var C=[],w="Moz O ms Webkit",x=g._config.usePrefixes?w.split(" "):[];g._cssomPrefixes=x;var S=g._config.usePrefixes?w.toLowerCase().split(" "):[];g._domPrefixes=S;var _=n.documentElement,b="svg"===_.nodeName.toLowerCase(),z={elem:u("modernizr")};Modernizr._q.push(function(){delete z.elem});var E={style:z.elem.style};Modernizr._q.unshift(function(){delete E.style}),g.testAllProps=h,g.testAllProps=y,Modernizr.addTest("flexbox",y("flexBasis","1px",!0)),Modernizr.addTest("flexboxtweener",y("flexAlign","end",!0)),o(),delete g.addTest,delete g.addAsyncTest;for(var P=0;P<Modernizr._q.length;P++)Modernizr._q[P]();e.Modernizr=Modernizr}(window,document);
|
||
|
||
if (!Modernizr.flexbox && !Modernizr.flexboxtweener) {
|
||
|
||
var $body = $('body');
|
||
|
||
var nodesClasses = {
|
||
wrapper: 'not-supported-browser',
|
||
container: 'not-supported-browser__container',
|
||
|
||
title: 'not-supported-browser__title',
|
||
content: 'not-supported-browser__content',
|
||
logo: 'not-supported-browser__logo'
|
||
};
|
||
|
||
var nodes = {
|
||
wrapper: $('<div class="' + nodesClasses.wrapper + '"></div>'),
|
||
title: $('<div class="' + nodesClasses.title + '">Sorry, your browser is not fully supported</div>'),
|
||
content: $('<div class="' + nodesClasses.content + '">There may be some issues with pages layout in your current browser.<br/>Please use an alternate browser until we resolve the issues.<br/>Thank you.</div>'),
|
||
container: $('<div class="' + nodesClasses.container + '"></div>'),
|
||
logo: $('<div class="' + nodesClasses.logo + '"><svg class="sprite-img _jetbrains" xmlns:xlink="http://www.w3.org/1999/xlink"><use xlink:href="#jetbrains"></use></svg></div>')
|
||
};
|
||
|
||
$body.addClass('overflow-hidden');
|
||
|
||
|
||
nodes.content
|
||
.prepend(nodes.title)
|
||
.prepend(nodes.logo);
|
||
|
||
nodes.container
|
||
.append(nodes.content);
|
||
|
||
nodes.wrapper
|
||
.append(nodes.container)
|
||
.appendTo($body);
|
||
}
|
||
</script>
|
||
<div class="page">
|
||
|
||
<div class="page__header">
|
||
<div class="page__header-language-suggestion" id="language-suggest-bar"></div>
|
||
<div class="page__header-country-suggestion" id="country-suggest-bar"></div>
|
||
|
||
|
||
<div class="site-header-container" id="js-site-header-container">
|
||
<div class="site-header-stub ">
|
||
<div class="wt-container site-header-stub__inner">
|
||
<div class="site-header-stub__menu-main-skeleton-text" style="min-width: 69px"></div>
|
||
<div class="site-header-stub__menu-main-skeleton-text" style="min-width: 81px"></div>
|
||
<div class="site-header-stub__menu-main-skeleton-text" style="min-width: 46px"></div>
|
||
<div class="site-header-stub__menu-main-skeleton-button"></div>
|
||
<div class="site-header-stub__menu-main-skeleton-button"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="menu-second " id="js-menu-second">
|
||
<div class="wt-container">
|
||
<div id="js-menu-second-mobile-wrapper" class="wt-display-none">
|
||
<div id="js-menu-second-mobile">
|
||
<div class="menu-second-mobile wt-row wt-row_size_m wt-row_align-items_center wt-row_justify_between ">
|
||
<div class="wt-col-inline menu-second-skeleton-text-2" style="max-width: 120px"></div>
|
||
<div class="wt-col-inline menu-second-skeleton-button" style="max-width: 80px"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="js-menu-second-desktop" class="menu-second-desktop
|
||
wt-row wt-row_size_0 wt-row_align-items_center">
|
||
<div class="wt-col-auto-fill">
|
||
<a class="menu-second-title-box"
|
||
href="/phpstorm/">
|
||
<span class="menu-second-title-box__logo jetbrains-logo">
|
||
<svg class="_phpstorm sprite-img" xmlns:xlink="http://www.w3.org/1999/xlink"><use xlink:href="#phpstorm"></use></svg>
|
||
</span>
|
||
|
||
<span class="menu-second-title-box__title wt-h3 ">PhpStorm</span>
|
||
</a>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<div class="menu-second-skeleton-text-2" style="max-width: 70px; margin-right: 16px;"></div>
|
||
|
||
<div class="menu-second-skeleton-text-2" style="max-width: 70px; margin-right: 16px;"></div>
|
||
|
||
<div class="menu-second-skeleton-text-2" style="max-width: 70px; margin-right: 16px;"></div>
|
||
|
||
<div class="menu-second-skeleton-text-2" style="max-width: 70px; margin-right: 16px;"></div>
|
||
|
||
<div class="menu-second-skeleton-text-2" style="max-width: 70px; margin-right: 16px;"></div>
|
||
|
||
|
||
|
||
<a href="/phpstorm/download/"
|
||
class="wt-col-inline menu-second__download-button wt-button wt-button_size_s
|
||
wt-button_mode_primary">
|
||
Download
|
||
</a>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<div class="page__content ">
|
||
<div class="section-content article-content">
|
||
<div class="wt-container">
|
||
<div class="wt-row wt-row_size_m">
|
||
<div class="wt-col-10">
|
||
<h2>Xdebug & Zend Debugger bookmarklets generator for PhpStorm</h2>
|
||
<p>PhpStorm supports debugging with both Xdebug & Zend Debugger. The debugger is activated from
|
||
the browser
|
||
side by setting a special parameter. While you can do that manually, it is much more convenient
|
||
to use a
|
||
special tool such as a browser toolbar (check your browser extensions list) or bookmarklets.
|
||
Browser
|
||
bookmarklets for both debuggers can be generated on this page.</p>
|
||
<p>Check out a <a href="https://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm">full
|
||
tutorial on zero-configuration debugging in PhpStorm</a> or watch a <a href="http://www.jetbrains.com/phpstorm/documentation/phpstorm-video-tutorials.html#10">video
|
||
tutorial</a>.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="wt-row wt-row_size_m">
|
||
<div class="wt-col-6">
|
||
<h3>Xdebug</h3>
|
||
<div class="wt-row wt-row_size_m">
|
||
<div class="wt-col-6">
|
||
<form class="form form-xdebug js-form">
|
||
<div class="form__fields-wrapper">
|
||
<div class="form__field">
|
||
<label for="xdebug_idekey" class="field-label">IDE key:</label>
|
||
<input id="xdebug_idekey" class="input" type="text" value="PHPSTORM"/>
|
||
</div>
|
||
</div>
|
||
<div class="rightfloated block80">
|
||
<button class="button js-button-generate-xdebug" type="button">Generate</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="wt-col-6">
|
||
<h3>Zend Debugger</h3>
|
||
<div class="wt-row wt-row_size_m">
|
||
<div class="wt-col-6">
|
||
<form class="form form-zend-debugger js-form">
|
||
<div class="form__fields-wrapper">
|
||
<div class="form__field">
|
||
<label for="zend_debugger_port" class="field-label">Port:</label>
|
||
<input id="zend_debugger_port" class="input" type="text" value="10137"/>
|
||
</div>
|
||
<div class="form__field">
|
||
<label for="zend_debugger_ip" class="field-label">IP:</label>
|
||
<input id="zend_debugger_ip" class="input" type="text" value="127.0.0.1"/>
|
||
</div>
|
||
<div class="checkbox-list">
|
||
<label class="checkbox checkbox-list__item">
|
||
<input id="zend_debugger_break_at_the_first_line" type="checkbox" checked="checked"
|
||
class="checkbox__input"/>
|
||
<span class="checkbox__icon"></span><span class="checkbox__label">Break at the first line</span>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
<div class="rightfloated block80">
|
||
<button class="button js-button-generate-zend-debugger" type="button">Generate</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="wt-row wt-row_size_m">
|
||
<div class="wt-col-6">
|
||
<div id="xdebug_bookmarklets" class="hide">
|
||
<h3>Bookmark these links for future use</h3>
|
||
<h4>Debug:</h4>
|
||
<ul class="starlist">
|
||
<li><a id='xdebugStartSession'>Start debugger</a></li>
|
||
<li><a id='xdebugStopSession'>Stop debugger</a></li>
|
||
<li><a id='xdebugThisPage'>Debug this page</a></li>
|
||
</ul>
|
||
<h4>Profile:</h4>
|
||
<ul class="starlist">
|
||
<li><a id='xdebugStartProfiler'>Start profiler</a></li>
|
||
<li><a id='xdebugStopProfiler'>Stop profiler</a></li>
|
||
</ul>
|
||
<h4>Function Trace:</h4>
|
||
<ul class="starlist">
|
||
<li><a id='xdebugStartTracer'>Start tracer</a></li>
|
||
<li><a id='xdebugStopTracer'>Stop tracer</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="wt-col-6">
|
||
<div id="zend_bookmarklets" class="hide">
|
||
<h3>Bookmark these links for future use</h3>
|
||
<h4>Debug:</h4>
|
||
<ul class="starlist">
|
||
<li><a id="zendDebugAllPages">Start debugger</a></li>
|
||
<li><a id="zendStopSession">Stop debugger</a></li>
|
||
<li><a id="zendDebugThisPage">Debug this page</a></li>
|
||
<li><a id="zendDebugNextPage">Debug next page</a></li>
|
||
<li><a id="zendDebugAllPost">Debug all post</a></li>
|
||
</ul>
|
||
<h4>Profile:</h4>
|
||
<ul class="starlist">
|
||
<li><a id='zendStartProfiler'>Start profiler</a></li>
|
||
<li><a id='zendStopProfiler'>Stop profiler</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!--<div>v 0.5.2</div>-->
|
||
</div>
|
||
</div>
|
||
|
||
<div class="page__footer" id="footer-container">
|
||
<footer class="footer" id="footer"></footer>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
(function () {
|
||
function getParameterByName(name, url) {
|
||
if (!url) url = window.location.href;
|
||
name = name.replace(/[\[\]]/g, "\\$&");
|
||
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
|
||
results = regex.exec(url);
|
||
if (!results) return null;
|
||
if (!results[2]) return '';
|
||
return decodeURIComponent(results[2].replace(/\+/g, " "));
|
||
}
|
||
|
||
function updateQueryStringParameter(uri, key, value) {
|
||
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
|
||
var separator = uri.indexOf('?') !== -1 ? "&" : "?";
|
||
if (uri.match(re)) {
|
||
return uri.replace(re, '$1' + key + "=" + value + '$2');
|
||
}
|
||
else {
|
||
return uri + separator + key + "=" + value;
|
||
}
|
||
}
|
||
|
||
var downloadLink = document.getElementById("download-link");
|
||
if (downloadLink != null) {
|
||
var platform = getParameterByName('platform');
|
||
platform = platform != null ? platform : "windows";
|
||
var href = downloadLink.getAttribute("href");
|
||
var code = getParameterByName("code");
|
||
|
||
if(code != null) {
|
||
href = updateQueryStringParameter(href, "code", code)
|
||
}
|
||
href = updateQueryStringParameter(href, "platform", platform);
|
||
downloadLink.setAttribute("href", href);
|
||
}
|
||
})();
|
||
</script><script>
|
||
(function() {
|
||
var STORAGE_KEY_NAME = 'firefoxDisappearedSVGWorkaround';
|
||
var STORAGE_KEY_VALUE = '1';
|
||
|
||
var isFirefox = /firefox/i.test(navigator.userAgent);
|
||
if (!isFirefox || isFirefox && sessionStorage.getItem(STORAGE_KEY_NAME) === STORAGE_KEY_VALUE) {
|
||
return;
|
||
}
|
||
|
||
var arrayFrom = function (arrayLike) {
|
||
return Array.prototype.slice.call(arrayLike, 0);
|
||
};
|
||
|
||
function workaround() {
|
||
var uses = document.querySelectorAll('.page svg use');
|
||
var badNodesCount = 0;
|
||
|
||
arrayFrom(uses).forEach(function (node) {
|
||
var rect = node.getBoundingClientRect();
|
||
if (rect.width === 0 && rect.height === 0)
|
||
badNodesCount++;
|
||
});
|
||
|
||
if (badNodesCount === uses.length) {
|
||
sessionStorage.setItem(STORAGE_KEY_NAME, STORAGE_KEY_VALUE);
|
||
if (typeof dataLayer !== 'undefined')
|
||
dataLayer.push({'firefoxDisappearedSVGWorkaround': STORAGE_KEY_VALUE});
|
||
|
||
window.location.replace(window.location.href);
|
||
}
|
||
}
|
||
|
||
window.addEventListener('DOMContentLoaded', workaround);
|
||
|
||
})();
|
||
</script> <link href="/_assets/banner-rotator.entry.d57df654959fabf16ae0.css" rel="stylesheet" type="text/css">
|
||
<script src="/_assets/banner-rotator.entry.9533e9e02b0f5c3aec9b.js" type="text/javascript"></script>
|
||
|
||
|
||
<script>
|
||
(function () {
|
||
|
||
'use strict';
|
||
|
||
function ImagesSrcReplacer () {
|
||
|
||
var attribute = 'data-src';
|
||
var matches = document.querySelectorAll('img[' + attribute + ']');
|
||
|
||
for (var i = 0, n = matches.length; i < n; i++) {
|
||
|
||
var attrValue = matches[i].getAttribute(attribute);
|
||
|
||
if (_isHighDensity ()) {
|
||
|
||
var name = attrValue.substring(0, attrValue.lastIndexOf('.'));
|
||
var extention = attrValue.substring(attrValue.lastIndexOf('.'), attrValue.length);
|
||
|
||
matches[i].setAttribute('src', name + '@2x' + extention);
|
||
|
||
} else {
|
||
matches[i].setAttribute('src', attrValue)
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Detect high density
|
||
* @returns {*|boolean}
|
||
*/
|
||
function _isHighDensity () {
|
||
return (
|
||
(window.matchMedia &&
|
||
(window.matchMedia('only screen and (min-resolution: 124dpi), only screen and (min-resolution: 1.3dppx), only screen and (min-resolution: 48.8dpcm)').matches ||
|
||
window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3)').matches)) ||
|
||
(window.devicePixelRatio &&
|
||
window.devicePixelRatio > 1.3));
|
||
}
|
||
}
|
||
|
||
return new ImagesSrcReplacer()
|
||
|
||
}(document, window));
|
||
</script></body>
|
||
</html>
|