This is to just give an idea, please change the code accordingly as the code is neither complete or verified.
Setup a new magento 2 extension.
Create catalog_product_view.xml
on the following path
app/code/{YourVendor}/{YourExtension}/view/frontend/layout/catalog_product_view.xml
with something like
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="{YourVendor}\{YourModule}\Block\Product\View" name="{vendor}.{module}.product.view" template="product/view.phtml" before="-"/>
<referenceContainer name="product.info.main" remove="true"></referenceContainer>
</referenceContainer>
</body>
Now Create a Block file View.php
on path
app/code/{YourVendor}/{YourModule}/Block/Product/View.php
Extend magento's base block class for product view, something like
namespace {YourVendor}\{YourModule}\Block\Product;
class View extends \Magento\Catalog\Block\Product\View {
// DEFINE FUNCTIONS TO SUIT YOUR REQUIREMENTS OR OVERRIDE FUNCTIONS FROM VIEW CLASS
}
Also create the template file view.phtml
on path
app/code/{YourVendor}/{YourExtension}/view/frontend/templates/product/view.phtml
You can use the functions you defined in the View
Block class