aktuelle.kurse/m133/3_Entwicklungsumgebungen/PHP Storm

605 lines
52 KiB
Plaintext
Raw Normal View History

2022-02-23 22:44:33 +01:00
<!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>Download PhpStorm: Lightning-Smart PHP IDE</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/download/"/> <!-- .350-->
<meta name="description" content="Download the latest version of PhpStorm for Windows, macOS or Linux."/>
<link rel="alternate" hreflang="x-default" href="https://www.jetbrains.com/phpstorm/download/" />
<link rel="alternate" hreflang="en" href="https://www.jetbrains.com/phpstorm/download/" />
<link rel="alternate" hreflang="en-CN" href="https://www.jetbrains.com.cn/en-us/phpstorm/download/" />
<link rel="alternate" hreflang="de" href="https://www.jetbrains.com/de-de/phpstorm/download/" />
<link rel="alternate" hreflang="es" href="https://www.jetbrains.com/es-es/phpstorm/download/" />
<link rel="alternate" hreflang="fr" href="https://www.jetbrains.com/fr-fr/phpstorm/download/" />
<link rel="alternate" hreflang="ja" href="https://www.jetbrains.com/ja-jp/phpstorm/download/" />
<link rel="alternate" hreflang="ko" href="https://www.jetbrains.com/ko-kr/phpstorm/download/" />
<link rel="alternate" hreflang="ru" href="https://www.jetbrains.com/ru-ru/phpstorm/download/" />
<link rel="alternate" hreflang="zh-Hans" href="https://www.jetbrains.com/zh-cn/phpstorm/download/" />
<link rel="alternate" hreflang="zh-CN" href="https://www.jetbrains.com.cn/phpstorm/download/" />
<link rel="alternate" hreflang="pt-BR" href="https://www.jetbrains.com/pt-br/phpstorm/download/" />
<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/download/"}, {"canonical": "de", "code": "de-de", "label": "Deutsch", "page_translated": true, "url": "/de-de/phpstorm/download/"}, {"canonical": "es", "code": "es-es", "label": "Espa\u00f1ol", "page_translated": true, "url": "/es-es/phpstorm/download/"}, {"canonical": "fr", "code": "fr-fr", "label": "Fran\u00e7ais", "page_translated": true, "url": "/fr-fr/phpstorm/download/"}, {"canonical": "ja", "code": "ja-jp", "label": "\u65e5\u672c\u8a9e", "page_translated": true, "url": "/ja-jp/phpstorm/download/"}, {"canonical": "ko", "code": "ko-kr", "label": "\ud55c\uad6d\uc5b4", "page_translated": true, "url": "/ko-kr/phpstorm/download/"}, {"canonical": "ru", "code": "ru-ru", "label": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439", "page_translated": true, "url": "/ru-ru/phpstorm/download/"}, {"canonical": "zh-Hans", "code": "zh-cn", "label": "\u7b80\u4f53\u4e2d\u6587", "page_translated": true, "url": "/zh-cn/phpstorm/download/"}, {"canonical": "pt-BR", "code": "pt-br", "label": "Portugu\u00eas do Brasil", "page_translated": true, "url": "/pt-br/phpstorm/download/"}]};
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&nbsp;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":
var is_layout_adaptive = false;
is_layout_adaptive = true;
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/download/index.entry.f823efa0bc374b62a60b.js" type="text/javascript"></script>
<!-- Social Media tag Starts -->
<!-- Open Graph data -->
<meta property="og:title" content="Download PhpStorm: Lightning-Smart PHP IDE"/>
<meta property="og:description" content="Download the latest version of PhpStorm for Windows, macOS or Linux."/>
<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/download/ />
<!-- 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/download/#webpage",
"url": "https://www.jetbrains.com/phpstorm/download/",
"name": "Download PhpStorm: Lightning-Smart PHP IDE",
"description": "Download the latest version of PhpStorm for Windows, macOS or Linux.",
"image": "https://resources.jetbrains.com/storage/products/phpstorm/img/meta/phpstorm_1280x800.png"
}</script>
<!-- Schema.org end -->
<!-- Twitter data -->
<meta name="twitter:description" content="Download the latest version of PhpStorm for Windows, macOS or Linux.">
<meta name="twitter:title" content="Download PhpStorm: Lightning-Smart PHP IDE">
<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 body-adaptive">
<!-- 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 site-header-stub--adaptive">
<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 id="content">
<section>
<div class="wt-container">
<div id="country-offer-placeholder" class="wt-offset-top-48"></div> </div>
</section>
<div id="download-block">
<div class="wt-section wt-offset-top-96">
<div class="wt-container">
<div class="wt-row wt-row_size_m wt-row-sm_direction_column-reverse">
<div class="wt-col-3 wt-col-md-4 wt-col-sm-12">
<div class="download-logo-skeleton wt-display-sm-none">
<div class="jetbrains-logo-skeleton">
<div class="logo-dark"></div>
</div>
</div>
<div class="wt-row wt-row_size_m wt-offset-top-24">
<div class="wt-col-12">
<span class="download-data-skeleton"></span>
<span class="download-data-skeleton"></span>
<span class="download-data-skeleton"></span>
</div>
</div>
</div>
<div class="wt-col-7 wt-col-md-8 wt-col-sm-12">
<div class="download-title-skeleton wt-offset-top-sm-24"></div>
<div class="download-tabs-skeleton wt-offset-top-12">
<span class="download-tab-skeleton"></span>
<span class="download-tab-skeleton"></span>
<span class="download-tab-skeleton"></span>
</div>
<div class="download-text-skeleton wt-offset-top-24 wt-offset-top-sm-12"></div>
<div class="download-button-skeleton wt-offset-top-24"></div>
</div>
<div class="download-logo-skeleton wt-display-none wt-display-sm-block wt-col-12">
<div class="jetbrains-logo-skeleton">
<div class="logo-dark"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<noscript id="noscript">
<section class="wt-section">
<div class="wt-container wt-offset-top-96">
<p>
Weve noticed that JavaScript is disabled in your web browser. Please <a
href="http://enable-javascript.com/" target="_blank">enable JavaScript</a>
in order to take advantage of all the features of this website.<br/>
Download PhpStorm for your operating system
<a href="//data.services.jetbrains.com/products/download?code=PS&platform=windows">Windows</a>,
<a href="//data.services.jetbrains.com/products/download?code=PS&platform=mac">macOS</a>,
<a href="//data.services.jetbrains.com/products/download?code=PS&platform=linux">Linux</a>.
</p>
</div>
</section>
</noscript>
</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>